私は 7 週間で 7 つの言語の Erlang チュートリアルを Eclipse に Erlide を使用して作業してきましたが、並行処理のセクションに到達するまでは、ほとんどすべて問題ないように見えました。
このセクションでは、著者は簡単な例を紹介します
loop() ->
receive
"casa" ->
io:format("house~n"),
loop();
"blanca" ->
io:format("white~n"),
loop();
_ -> io:format("no comprendo~n"),
loop()
end.
本で提案されているように実行すると、メッセージを送信できるはずですがPid ! "someStuff".
、これを実行すると何も返されず、デバッガーはアクティビティを再開する前にプロセスを強制終了する必要があります。
コンソールの例を次に示します。メッセージを送信すると、何も返されないことがわかります。
Eshell V5.10.4
(ErlangDay3@Jeff-PC)1> Pid = spawn(fun translate:loop/0).
<0.202.0>
(ErlangDay3@Jeff-PC)2> Pid ! "casa".
Pid ! "hello?".
WhatJustHappened.
これはすべて、(eclipse と erlide を使用せずに) Eshell を使用して直接コマンド ラインから完全に実行されるようです。どこかで構成を見逃した可能性がありますか? 私は今、完全に困惑しています。SO はこのような質問に最適な場所ではないかもしれませんが、Google-fu を完全に使い果たしたので、erlide にはフォーラムの存在がないようです。
あらゆるアドバイスをありがとう。
Windows 7 と Eclipse (STS、3.3.0)、Erlang 5.10.4 (R16B03-1) を実行している場合に役立つ場合