对于有 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 控制台挂起。无法弄清楚为什么,但它与接收子句有关吗?
是的,这是作业,我的老师这周不在那里,这就是我在互联网上寻找替身的原因。