我有一個簡單的程序,當給出一個包含{pid,integer}的tupple消息時,它將發送一條消息返回給處理器,其PID和整數+1。問題是我需要這個程序保持活動狀態,所以我可以發送多條消息,然後當我flush()它時,會一次發回它的郵箱。它一次只能處理1條消息。我嘗試了遞歸,但它不起作用。這是我的。我如何使靈藥始終處於進程狀態?
defmodule Spawner do
def start() do
spawn(fn ->
receive do
{pid,y} -> send(pid,y+1)
Spawner.start()
end
end)
end
end
然後在終端上我會做:
> x = Spawner.start()
> send x, {self(),3}
> send x, {self(),5}
> flush()
#⇒ output: {PID,4}
我需要的輸出爲{PID,4}
和{PID,6}
。
謝謝你的時間。
你真了不起,謝謝你的幫助 –