|
|
1
42
是的,但是很痛苦。下面是“lambda函数声明”(aka
看看这个 post . 您甚至可以输入 module's worth of declaration 如果你需要的话。换句话说,可以声明函数。 |
|
|
2
14
一个答案是shell只计算表达式,而函数定义不是表达式,而是形式。在erl文件中,您定义的是表单而不是表达式。 所有函数都存在于模块中,除了函数定义之外,模块还包含属性,更重要的是模块名称以及从中导出的函数。只能从其他模块调用导出的函数。这意味着必须先定义模块,然后才能定义函数。 模块是Erlang中的编译单元。它们也是代码处理的基本单元,即加载、更新或从系统中删除的整个模块。在这方面,一个接一个地单独定义函数并不符合事物的模式。 另外,从纯实际的角度来看,编译一个模块的速度非常快,以至于能够在shell中定义函数几乎没有什么好处。 |
|
|
3
3
如果您想在shell上定义一个函数,将其用作宏(因为它封装了一些您经常需要的功能),请看一下 |
|
|
4
0
这取决于你实际需要做什么。
有一些函数可以被认为是“一次性的”,也就是说,定义一次以执行测试,然后继续。在这种情况下,
定义一个
匿名的
但是,您可能需要定义
效用
您打算在Erlang shell中反复使用的函数。在这种情况下,我建议使用
我写了一个关于如何做这个的小指南 GitHub link . 你可能会发现它有帮助和指导意义。 |