こんにちは、私は Erlang を学んでおり、その過程でErlang execises pageから演習を行おうとしています。特に、M メッセージを別のプロセスに送信して終了する 2 つのプロセスを作成する関数を作成する必要があるという問題に取り組んでいます。私はそれで問題を抱えています、これは私のコードです:
-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]).
トークを呼び出すと、次のエラーが表示されます。
=ERROR REPORT==== 11-Nov-2013::21:21:00 === プロセス <0.46.0> で終了値のエラー: {undef,[{roundtrip,proc,"\n",[] }]}
=ERROR REPORT==== 11-Nov-2013::21:21:00 === プロセス <0.47.0> で終了値のエラー: {undef,[{roundtrip,proc,"\n",[] }]}
私はそれを回っていますが、何が問題なのかわかりません...
ありがとう。