Erlang 在此模块代码中我错在哪里
我已经用下面的代码创建了一个模块Erlang 在此模块代码中我错在哪里,erlang,Erlang,我已经用下面的代码创建了一个模块 -module('calc') . -export([sum/2]) . (0) sum(L) -> sum(L,0); (1) sum([],N) -> N; (2) sum([H|T], N) -> sum(T, H + N) (3) . 在shell中,当我编译时,它会返回如下错误 calc.erl:5: head mismatch calc.erl:2: function sum/2 undefined er
-module('calc') .
-export([sum/2]) . (0)
sum(L) -> sum(L,0); (1)
sum([],N) -> N; (2)
sum([H|T], N) -> sum(T, H + N) (3) .
在shell中,当我编译时,它会返回如下错误
calc.erl:5: head mismatch
calc.erl:2: function sum/2 undefined
error
根据我在书中的理解,1条款将接收列表并将其传递给(3)。然后(3)将返回所需的结果。但我不知道我在哪里犯了这个错误。请帮我做这个
并请帮助我了解出口声明中的/2是什么。
检查此链接
/export语句中的2表示函数sum的参数数。检查此链接
/export语句中的2表示函数sum的参数数。第(1)行出现语法错误。函数sum/1和sum/2不同,因此您的代码应该如下所示:
sum(L) -> sum(L,0). %% notice the . instead of ;
sum([],N) -> N;
sum([H|T], N) -> sum(T, H + N).
/2是函数的arity,也就是它需要的参数数。因此,在您的例子中,要导出的函数是sum/1。第(1)行出现语法错误。函数sum/1和sum/2不同,因此您的代码应该如下所示:
sum(L) -> sum(L,0). %% notice the . instead of ;
sum([],N) -> N;
sum([H|T], N) -> sum(T, H + N).
/2是函数的arity,也就是它需要的参数数。因此,在您的例子中,要导出的函数是sum/1