嗨,我正在学习 Erlang,在此过程中,我正在尝试从Erlang execises 页面进行练习。特别是我正在做的问题是,我必须创建一个函数,该函数创建两个进程,将 M 消息发送给另一个进程,然后死掉。我遇到了麻烦,这是我的代码:
-module(roundtrip).
-export([talk/1]).
talk(M) ->
init(M).
init(M) ->
P1 = start(M),
P2 = start(M),
P2 ! {P1, a_message}.
myProc(M) ->
if M =:= 0 ->
io:format("Bye cruel world!~n")
end,
receive
{From, a_message} ->
From ! {self(), a_message},
myProc(M-1);
_ ->
io:format("I don't understand~n"),
myProc(M)
end.
start(M) ->
spawn(?MODULE, myProc, [M]).
当我打电话给谈话时,我得到以下错误:
=错误报告==== 2013 年 11 月 11 日::21:21:00 === 进程 <0.46.0> 出错,退出值:{undef,[{roundtrip,proc,"\n",[] }]}
=错误报告==== 2013 年 11 月 11 日::21:21:00 === 进程 <0.47.0> 出错,退出值:{undef,[{roundtrip,proc,"\n",[] }]}
我正在解决它,但我无法弄清楚是什么问题......
谢谢。