これは、Erlang の経験がある人にとってはおそらく簡単なことですが、私にはありません。プロセスのフィボナッチ ツリーを作成しようとしています。次に、メッセージを受け取り、そのメッセージを渡したノードの下にあるすべてのノードの合計を計算できます。
create_fibtree(N) when N > 1 ->
Child1 = spawn(fun() -> create_fibtree(N-1) end),
Child2 = spawn(fun() -> create_fibtree(N-2) end),
receive
Sum ->
Child1 ! sum + 1,
Child2 ! sum + 1,
io:format ("sum is ~p.~n", [Sum])
end;
create_fibtree(N) when N =< 1 ->
ok.
これを実行すると:
c(fib_tree2).
{ok,fib_tree2}
2> fib_tree2:create_fibtree(10).
Erlang コンソールがハングします。理由がわかりませんが、受信句が正しくありますか?
はい、これは宿題です。先生は今週不在です。そのため、インターネットで代役を探しています。