我在模块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
答案 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]
帕斯卡