2012-09-05 23 views
2

我在模塊rpc功能pmap中找到。當我試圖使用它時,我就卡住了。如何正確使用rpc:pmap?

第一個問題 - 它是否需要與其他節點連接,或者如果沒有與其他節點的連接,它將執行爲lists:map

我試過沒有連接到其他節點執行pmap,但有例外:

7> rpc:pmap({ erlang, '+' }, [], [[1,1],[2,3]]).   
** exception exit: badrpc 
    in function rpc:check/2 (rpc.erl, line 745) 

之後 - 我已經推出了另一本地節點和當前連接它。但仍然有同樣的錯誤。

請爲我提供如何正確使用rpc:pmap

感謝

附: 下面的代碼工作預期地(返回結果3):

70> erlang:apply(erlang, '+', [1,2]). 
3 
71> erlang:'+'(1,2). 
3 

回答

6

的RPC:地圖({模塊,函數},ExtraArgs,列表1)計算應用(模塊,函數,[ELEM | ExtraArgs]),對於每一個List1中的元素Elem並行。

因此,使用的erlang正確的語法: '+' 是:

1> RPC:PMAP({二郎, '+'},[2],[1,2,3])。

[3,4,5]

2>

其評估[1 + 2,2 + 2,3 + 2]

語法RPC:PMAP({列表,總和},[],[[1,2],[4,5]])將評估[1 + 2,4 + 5],並返回 [3,9]

帕斯卡

+0

感謝澄清:)我沒有考慮到這一點'[[1,2] | []]'是'[[1,2]]',而不是'[1,2]'。 – stemm