Erlang:为什么这会以'badarith'异常失败?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Erlang:为什么这会以'badarith'异常失败?相关的知识,希望对你有一定的参考价值。
是否可以在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
s无关,您只需要将变量名称大写。
另一答案
make_adder(N) ->
fun (X) -> X + N end.
另一答案
变量从erlang中的Capital Letters开始。以小写字母开头的单词是原子。
以上是关于Erlang:为什么这会以'badarith'异常失败?的主要内容,如果未能解决你的问题,请参考以下文章
Erlang - 将每个“erlang 进程”映射到新的内核线程