Erlangの通貨プログラミングを学ぼうとしています。
これはErlang.orgから入手したサンプルプログラムですが、実行方法についての説明はありません。
私はそれをこのように実行します、
1> counter:start()
<0.33.0>
しかし、プロセス(counter:start())が受信したメッセージに従って作業を実行できるように、他の関数を実行する方法がわかりません。
2つ以上のプロセスが実際に生成されたことを確認するにはどうすればよいですか?
別の質問、関数で受信したメッセージを印刷する方法は?
-module(counter).
-export([start/0,loop/1,increment/1,value/1,stop/1]).
%% First the interface functions.
start() ->
spawn(counter, loop, [0]).
increment(Counter) ->
Counter ! increment.
value(Counter) ->
Counter ! {self(),value},
receive
{Counter,Value} ->
Value
end.
stop(Counter) ->
Counter ! stop.
%% The counter loop.
loop(Val) ->
receive
increment ->
loop(Val + 1);
{From,value} ->
From ! {self(),Val},
loop(Val);
stop -> % No recursive call here
true;
Other -> % All other messages
loop(Val)
end.
どんな助けでもありがたいです。
ありがとう