我在这个模块代码中错了

Exc*_*ion 1 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) .
Run Code Online (Sandbox Code Playgroud)

在shell中,当我编译它时返回错误,如下所示

 calc.erl:5: head mismatch
 calc.erl:2: function sum/2 undefined
 error
Run Code Online (Sandbox Code Playgroud)

根据我对本书的理解,1个条款将收到列表并将其传递给(3).然后(3)将返回所需的结果.
但我不知道我犯了哪个错误.请帮帮我.

And please help me to understand what is /2 in export statement.

Art*_*ct2 7

第(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).
Run Code Online (Sandbox Code Playgroud)

/ 2是函数的arity,即它所需的参数数量.因此,在您的情况下,您要导出的函数是sum/1.