这是一个完整的功能新手问题。
我正在尝试学习一些 Erlang 并创建了一个(希望是并发的)蒙特卡罗模拟,其中产生了多个进程,它们通过消息传递将它们的本地结果报告给父进程。
所以在父进程中我有类似的东西
parent(NumIterations, NumProcs) ->
random:seed(),
% spawn NumProcs processes
lists:foreach(
spawn(moduleName, workerFunction, [self(), NumIterations/NumProcs, 0, 0]),
lists:seq(0, NumProcs - 1)),
% accumulate results
receive
{N, M} -> ???; % how to accumulate this into global results?
_ -> io:format("error")
end.
假设我想总结从衍生进程收到的所有 Ns 和 Ms。
我知道累积值通常是通过函数式编程中的递归来完成的,但是如何在接收语句中做到这一点..?