我在模块 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
最佳答案
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]
帕斯卡
关于erlang - 如何使用rpc :pmap correctly?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12284052/