【发布时间】:2013-11-23 19:11:36
【问题描述】:
您好,我正在学习 Erlang,在此过程中,我正在尝试通过 Erlang execises page 进行练习。特别是我正在做一个问题,我必须创建一个函数来创建两个进程,将 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 === 进程 出错,退出值:{undef,[{roundtrip,proc,"\n" ,[]}]}
=错误报告==== 2013 年 11 月 11 日::21:21:00 === 进程 出错,退出值:{undef,[{roundtrip,proc,"\n" ,[]}]}
我正在解决它,但我无法弄清楚问题所在......
谢谢。
【问题讨论】:
标签: concurrency erlang