2012-09-05 74 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