Module 如何在Erlang中将模块中的函数分配给变量?

Module 如何在Erlang中将模块中的函数分配给变量?,module,erlang,Module,Erlang,我是新来的二郎。如果我这样做 H = fun(X) -> X*X. 那就好了。但是如果我把这个函数移到一个模块中,它会说“非法表达式”。比如这个 H = misc_functions:square. 请提供帮助。Erlang函数引用需要关键字fun和arity。假设square采用单个参数,正确的赋值为: H = fun misc_function:square/1 您也可以这样做: 1> F = fun(X) -> misc_function:square(X) end

我是新来的二郎。如果我这样做

H = fun(X) -> X*X.
那就好了。但是如果我把这个函数移到一个模块中,它会说“非法表达式”。比如这个

H = misc_functions:square.

请提供帮助。

Erlang函数引用需要关键字
fun
和arity。假设
square
采用单个参数,正确的赋值为:

H = fun misc_function:square/1

您也可以这样做:

1> F = fun(X) -> misc_function:square(X) end.
#Fun<erl_eval.6.13229925>
2> F(4).
16
3>
1>F=fun(X)->其他函数:平方(X)结束。
#乐趣
2> F(4)。
16
3>

定义在所需函数内调用的函数。

使用
fun misc_函数:square/1
fun(X)->misc_函数:square(X)end
没有根本区别。第一个是第二个的语法糖,在编译器中很早就转换为它。那么用法是
H(Param)
?例如,这是@Alin答案的简写形式吗?当使用parse_转换时,这个答案似乎不起作用,但Alin中更详细的版本起作用。这个答案虽然更详细,但即使在使用
parse_转换时也能起作用:我不认为Little Bobby的答案起作用(我试过了)