是否可以在Erlang中实现闭包?
例如,我如何从Scheme翻译此片段?
(define (make-adder n)
(lamdba (x) (+ x n)))
我尝试了以下内容,但我显然遗漏了一些东西。
make_adder(n) ->
fun (x) -> x + n end.
编译它会产生错误
Warning: this expression will fail with a 'badarith' exception
答案 0 :(得分:25)
你不能添加原子。变量从erlang中的Capital Letters开始。以小写字母开头的单词是atoms。
换句话说,您的问题根本与fun
无关,您只需要将变量名称大写。
答案 1 :(得分:3)
make_adder(N) ->
fun (X) -> X + N end.
答案 2 :(得分:0)
变量以erlang中的大写字母开头。 以小写字母开头的单词是atoms。