我有一个简单的程序,当给出一个包含{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}
。
谢谢你的时间。
你真了不起,谢谢你的帮助 –