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开始。以小写字母开头的单词是原子。

换句话说,您的问题根本与funs无关,您只需要将变量名称大写。

另一答案
make_adder(N) ->
  fun (X) -> X + N end.
另一答案

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

以上是关于Erlang:为什么这会以'badarith'异常失败?的主要内容,如果未能解决你的问题,请参考以下文章

如何重启一个erlang节点?

托管 erlang 应用程序

Erlang - 将每个“erlang 进程”映射到新的内核线程

更改列长会以任何方式影响视图吗?

vue.js的路由地址会以#号分隔,有啥办法可以去掉这个#号吗

是否会以O(n ^ 2)复杂度运行循环中的变量?