Erlang 与fun()的新词呼应
我最近一直在尝试处理Erlang,但对此有点困惑 问题 我试图在shell中编写一个函数对象,它接收任何消息并将其回显到shell,后面跟着一行新行 企图 我尝试的功能是:Erlang 与fun()的新词呼应,erlang,Erlang,我最近一直在尝试处理Erlang,但对此有点困惑 问题 我试图在shell中编写一个函数对象,它接收任何消息并将其回显到shell,后面跟着一行新行 企图 我尝试的功能是: Echo = fun() -> receive Any -> io:fwrite(Any), io:fwrite("~n") end end. 但是,如果我为此生成一个新进程 someNode@someHost 2> Pid = spawn(Echo). <0,76,0> …我似乎没有在写入
Echo = fun() -> receive Any -> io:fwrite(Any), io:fwrite("~n") end end.
但是,如果我为此生成一个新进程
someNode@someHost 2> Pid = spawn(Echo).
<0,76,0>
…我似乎没有在写入之后和消息返回之前获得新行字符
问题:
我的方法是否有问题,导致这个(非常简单的)示例无法按预期工作
提前感谢您的问题是原子性。
打印第一行后,“主线程”将被调度并打印Pid!的结果!Msg
,即Msg
可以像C中的printf一样接受参数:
Echo = fun() ->
receive
Any ->
io:fwrite("~p~n", [Any])
end
end
我真的应该早点注意到这一点——我以前多次使用过“~p”方法。我责备这是一个早晨。谢谢,当场回答:)
Echo = fun() ->
receive
Any ->
io:fwrite("~p~n", [Any])
end
end