erlang 改变一个有趣的环境
erlang change a fun environment
是否可以在不干扰有关函数定义和 lambda 提升的代码的情况下更改 erlang fun 的环境变量?
具体来说,我想在具有以下信息的娱乐环境中显式更改 pid(<12036.69.0>):
[{pid,<12036.68.0>},
{module,expl},
{new_index,7},
{new_uniq,<<197,235,209,205,33,163,202,255,8,58,234,128,135,166,147,185>>},
{index,7},
{uniq,103767694},
{name,'-test_no_pid/0-fun-1-'},
{arity,0},
{env,[<12036.69.0>]},
{type,local}]
乐趣做什么并不重要,因为我希望这个解决方案是一个通用的解决方案,它只更改乐趣环境中的所有 pid。
不,这会破坏 fun 作为常量值的引用透明性 属性。这与更新元组的字段没有什么不同,这种破坏性的变化甚至可能使垃圾收集器崩溃,因为它违反了关于指针方向的内部假设。
是否可以在不干扰有关函数定义和 lambda 提升的代码的情况下更改 erlang fun 的环境变量?
具体来说,我想在具有以下信息的娱乐环境中显式更改 pid(<12036.69.0>):
[{pid,<12036.68.0>},
{module,expl},
{new_index,7},
{new_uniq,<<197,235,209,205,33,163,202,255,8,58,234,128,135,166,147,185>>},
{index,7},
{uniq,103767694},
{name,'-test_no_pid/0-fun-1-'},
{arity,0},
{env,[<12036.69.0>]},
{type,local}]
乐趣做什么并不重要,因为我希望这个解决方案是一个通用的解决方案,它只更改乐趣环境中的所有 pid。
不,这会破坏 fun 作为常量值的引用透明性 属性。这与更新元组的字段没有什么不同,这种破坏性的变化甚至可能使垃圾收集器崩溃,因为它违反了关于指针方向的内部假设。