繁体   English   中英

Erlang:为什么这会以'badarith'异常失败?

[英]Erlang: Why does this fail with a 'badarith' exception?

是否可以在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

你不能添加原子。 变量从erlang中的Capital Letters开始。 以小写字母开头的单词是原子。

换句话说,你的问题与fun无关,你只需要大写你的变量名。

make_adder(N) ->
  fun (X) -> X + N end.

变量从erlang中的Capital Letters开始。 以小写字母开头的单词是原子。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM