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

时间:2011-01-02 07:56:03

标签: module erlang

我是Erlang的新手。如果我这样做

H = fun(X) -> X*X.

然后很好。但是,如果我将该功能移动到模块,它会说“非法表达”。例如这个

H = misc_functions:square.

请帮忙。

2 个答案:

答案 0 :(得分:17)

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

H = fun misc_function:square/1

答案 1 :(得分:2)

您也可以这样做:

1> F = fun(X) -> misc_function:square(X) end.
#Fun<erl_eval.6.13229925>
2> F(4).
16
3>

定义一个调用所需函数内部的函数。