-module(fun_param).
-export([start/0, partition_parallel/2]).
partition_parallel(F, Es) ->
Parent = self(),
Running = [{spawn_monitor(fun() -> Parent ! {self(), F(E)} end), E, helloworld} || E <- Es].
start()->
partition_parallel(
fun (C) ->
io:format("hello:~p~n", [C])
end, [1,2,3]).
recon_trace:calls({fun_param, '_', fun(_) -> return_trace() end}, 2000, [return_to, {scope, local}]).
4:22:12.026917 <0.161.0> fun_param:'-partition_parallel/2-lc$^0/1-0-'([1,2,3], #Fun<fun_param.0.111727472>, <0.161.0>)
4:22:12.027101 <0.161.0> fun_param:'-partition_parallel/2-lc$^0/1-0-'([2,3], #Fun<fun_param.0.111727472>, <0.161.0>)
4:22:12.027327 <0.161.0> fun_param:'-partition_parallel/2-lc$^0/1-0-'([3], #Fun<fun_param.0.111727472>, <0.161.0>)
4:22:12.027475 <0.161.0> fun_param:'-partition_parallel/2-lc$^0/1-0-'([], #Fun<fun_param.0.111727472>, <0.161.0>)
4:22:12.027581 <0.161.0> fun_param:'-partition_parallel/2-lc$^0/1-0-'/3 --> []
4:22:12.027704 <0.161.0> '--> fun_param:'-partition_parallel/2-lc$^0/1-0-'/3
这是什么意思
'-partition_parallel/2-lc$^0/1-0-'
,特别是lc$^0/1
?
这些参数从何而来?
([1,2,3], #Fun<fun_param.0.111727472>, <0.161.0>)
'-partition_parallel/2-lc$^0/1-0-'
这篇文章描述得很好: 调试时如何在 Erlang 中读取/解码列表理解的临时函数名
争论
([1,2,3], #Fun<fun_param.0.111727472>, <0.161.0>)
分解如下:
[1,2,3]
传递给匿名函数的参数#Fun<fun_param.0.111727472>
partition_parallel
<0.161.0>
执行函数的进程的 pid