让 Erlang shell 忘记 BIF
Posted
技术标签:
【中文标题】让 Erlang shell 忘记 BIF【英文标题】:Getting the Erlang shell to forget a BIF 【发布时间】:2015-10-31 19:57:27 【问题描述】:有什么方法可以让 Erlang 忘记内置函数,以便我可以使用该名称?
例如。忘记找回
【问题讨论】:
【参考方案1】:这里有点混乱。
retrieve
不是内置函数,你可能会想到receive
receive
不是内置函数,而是语言中的特殊标记,很像if
、case
、end
等。这些不能修改。
BIF 大多在erlang
模块中实现,不能重新定义这个
erlang
中的许多 BIF 在模块等中自动导入。任何模块本地定义都将接管这些,否则它们是erlang:MyBif(...)
的语法快捷方式。
shell 复制了这些自动导入,但也提供了附加功能。它们在技术上不是 BIF。见Shell Commands
您可以通过配置自己的user_default
模块来覆盖shell 的自动导入。这些只能在 shell 中工作。
为避免在模块中自动导入,请使用 -compile(no_auto_import,[Name/N]).
模块属性,以便 Name(...)
始终使用本地函数。
【讨论】:
以上是关于让 Erlang shell 忘记 BIF的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Erlang shell 中运行 Erlang 应用程序