我有一个函数,它接受两个参数并返回一个带有arity 1的函数:
make_fun(A, B) ->
fun(C) ->
A + B + C
end.
我使用上面的函数创建一个函数,然后将它应用于这样的参数:
Fun = make_fun(1,2),
Result = Fun(3).
在此之后Result = 6
。
问题是:如果不将函数存储在Fun
中,有没有办法做同样的事情?
这样的事情是理想的,但似乎不起作用:
Result = make_fun(1,2)(3).
答案 0 :(得分:3)
make_fun(A, B) ->
fun(C) ->
A + B + C
end.
只需将make_fun
括在括号中:
(make_fun(1, 2))(3).
答案 1 :(得分:-2)
这个怎么样?
Result = Fun(make_fun(1,2))。