0
我正在嘗試編寫一個函數,它將使進程在接收循環中等待,並在輸入上進行模式匹配以創建更多進程。在Erlang中收聽郵件
-module(masterNode).
%% ====================================================================
%% API functions
%% ====================================================================
-export([listen/0]).
%% ====================================================================
%% Internal functions
%% ====================================================================
listen() ->
receive
{userNodeName, createNode} ->
spawn(userNode, listen, [userNodeName]),
io:format("User Node Created!~n"),
listen();
{_, createNode} ->
spawn(userNode, listen, ["Anonymous"]),
io:format("Anonymous User Node Created!~n"),
listen();
_ ->
io:format("Invalid syntax!.~n")
end.
當我嘗試釀出masterNode到命令行的變量,我得到這個錯誤:
5> mn = spawn(masterNode, listen, []).
** exception error: no match of right hand side value <0.44.0>
但是,如果我不嘗試將其存儲到一個變量,我沒有問題:
6> spawn(masterNode, listen, []).
<0.47.0>
我試圖做的是運行使用該masterNode變量激活模式匹配,並通過另一個模塊(userNode)創建多個過程聽命令。像這樣:
mn ! {userNode1, createNode}. %Create a userNode process called userNode1
我是新來的Erlang,所以我可能會以這種錯誤的方式進行。任何幫助?
這就是問題!謝謝! – user2276280 2015-02-08 00:00:47