Erlang 代码没有编译?
Erlang code not compiling?
这是我的教授直接提供的代码。
-module(m) .
-export([ abc/1 , n/1] ) .
abc(X) ->
Y = spawn_link(m , n , [ self()]) ,
Y ! X ,
receive
Z -> Z
end .
n(X,X) −> [X] ;
n(X,Y) −> [Y| n(X,Y+Y) ] .
n(Z) −> receive N −> Z ! n(N∗N,N)
end .
没有编译,这是我收到的错误消息
m.erl:11: illegal character
m.erl:12: illegal character
m.erl:12: syntax error before: '>'
m.erl:13: illegal character
m.erl:13: illegal character
m.erl:13: illegal character
m.erl:13: syntax error before:N
m.erl:2: function n/1 undefined
发生了一些事情:
- 您使用的短划线字符未被解析 -(因此在您的第 11 行和其他行上有一些非 ascii 字符未被解析)
- 在
Z
和 end
调用之间没有 space,所以第一个接收块永远不会终止(Erlang 认为有一个未绑定的变量叫做 Zend
.
我清理了下面的代码,它为我编译了。我会查看您的缩进和间距,也许会尝试使其更加地道。
-module(m).
-export([ abc/1, n/1]).
abc(X) ->
Y = spawn_link(m , n , [ self()]) ,
Y ! X,
receive
Z -> Z
end.
n(X,X) ->
[X];
n(X,Y) ->
[Y|n(X,Y+Y) ].
n(Z) ->
receive
N -> Z ! n(N*N,N)
end.
这是我的教授直接提供的代码。
-module(m) .
-export([ abc/1 , n/1] ) .
abc(X) ->
Y = spawn_link(m , n , [ self()]) ,
Y ! X ,
receive
Z -> Z
end .
n(X,X) −> [X] ;
n(X,Y) −> [Y| n(X,Y+Y) ] .
n(Z) −> receive N −> Z ! n(N∗N,N)
end .
没有编译,这是我收到的错误消息
m.erl:11: illegal character
m.erl:12: illegal character
m.erl:12: syntax error before: '>'
m.erl:13: illegal character
m.erl:13: illegal character
m.erl:13: illegal character
m.erl:13: syntax error before:N
m.erl:2: function n/1 undefined
发生了一些事情:
- 您使用的短划线字符未被解析 -(因此在您的第 11 行和其他行上有一些非 ascii 字符未被解析)
- 在
Z
和end
调用之间没有 space,所以第一个接收块永远不会终止(Erlang 认为有一个未绑定的变量叫做Zend
.
我清理了下面的代码,它为我编译了。我会查看您的缩进和间距,也许会尝试使其更加地道。
-module(m).
-export([ abc/1, n/1]).
abc(X) ->
Y = spawn_link(m , n , [ self()]) ,
Y ! X,
receive
Z -> Z
end.
n(X,X) ->
[X];
n(X,Y) ->
[Y|n(X,Y+Y) ].
n(Z) ->
receive
N -> Z ! n(N*N,N)
end.