我用以下代码创建了一个模块
-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.
第(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.
| 归档时间: |
|
| 查看次数: |
124 次 |
| 最近记录: |