2

我在模块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)

之后 - 我启动了另一个本地节点并将其与 current. 但仍然得到同样的错误。

请告诉我如何rpc:pmap正确使用。

谢谢

PS 以下代码可以正常工作(返回结果 3):

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

1 回答 1

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]

帕斯卡

于 2012-09-06T06:37:27.337 回答