【发布时间】:2011-09-25 16:26:55
【问题描述】:
我目前正在编写一些与我可能重用的列表相关的函数。
我的问题是:
是否有组织此类功能的约定或最佳实践?
为了解决这个问题,理想情况下,我想“扩展”现有的列表模块,这样我就可以通过以下方式调用我的新函数:lists:my_funcion()。目前我有lists_extensions:my_function()。有没有办法做到这一点?
我读到了 erlang 包,它们本质上是 Erlang 中的命名空间。是否可以使用新的 Lists 函数为 Lists 定义新的命名空间?
请注意,我不是要分叉和更改标准列表模块,而是要找到一种方法在也称为列表的新模块中定义新函数,但通过使用某种命名空间方案来避免随之而来的命名冲突。
任何建议或参考将不胜感激。
干杯。
【问题讨论】:
-
听起来并不滑稽,但它是开源的。您可以分叉存储库并将您的更改添加到列表模块?
-
你可以。问题是你不能分发你自己的源代码而不必修补 Erlang/OTP。不是一个理想的解决方案。
-
我认为,当我们说扩展 erlang 模块时,我们的意思是添加更多功能或更改现有功能。我认为“adamstantonvan”想要的只是添加他的个人功能,以便从 lists.erl 中调用
-
抱歉,我的问题不太清楚。刚刚更新了问题以澄清我不打算分叉和更改,只是为了创建另一个同名的模块但避免命名冲突。
-
为什么需要这样做?幸运的是,我们不再像过去那样在模块名称中绑定 6 个字符,因此您可以组成很多名称。除了您可能想要访问的 Erlang 模块中的私有函数(没有实例变量、没有继承)之外,没有其他任何东西。
标签: erlang