如何正确使用rpc:pmap?

时间:2012-09-05 14:44:28

标签: erlang 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

由于

P.S。 以下代码预期工作(返回结果3):

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

1 个答案:

答案 0 :(得分:6)

rpc:map({Module,Function},ExtraArgs,List1)为List1中的每个元素Elem并行评估apply(Module,Function,[Elem | ExtraArgs])。

所以使用erlang的正确语法:' +'是:

  

1> rpc:pmap({erlang,' +'},[2],[1,2,3])。

     

[3,4,5]

     

2 - ;

评估[1 + 2,2 + 2,3 + 2]

语法rpc:pmap({lists,sum},[],[[1,2],[4,5]])将评估[1 + 2,4 + 5]并返回 [3,9]

帕斯卡