0
我在過去一週裏一直在學習erlang,並且正在閱讀Joe Armstrong的Pragmatic erlang書籍。我在寫一些代碼來創建子進程和所遇到的情況 我在模塊myatom.erl它看起來像這樣erlang中的spawn函數使用另一個模塊中的函數
start(anatom,Fun) ->
case whereis(anatom) of
undefined ->
Pid = spawn(Fun),
try register(anatom,Pid) of
true -> true
catch
error:Reason ->
Reason
end;
Other -> {error,already_defined}
end.
功能還有另一個模塊中的函數命名tloop.erl
loop() ->
receive
{ From , No } -> From ! { self(), No*4};
Other -> void
end.
如果我要使用start()在erlang shell中產生循環,我該怎麼做? 我收到以下錯誤,當我提前做
anatom:start(atomname,tloop:loop).
謝謝!
anatom:start(myatom,fun tloop:loop).
* 2: syntax error before: ')
謝謝你的回答。 然而,這也沒有解決,我相信真正的原因是當我們用一個新的原子稱爲newatom的函數時,erlang無法與(newatom,fun)在開始的主體中匹配任何模式。它期望所有呼叫匹配(myatom,有趣)。所以我用AnAtom替換了myatom,並且它的工作原理 – draklor40
當然,函數參數必須匹配:) – niahoo