【发布时间】:2019-08-02 04:18:32
【问题描述】:
Elixir 有类似 Scheme 的 call-with-current-continuation 的东西吗?有没有办法捕获等待的堆栈帧并将其存储在变量中以供以后使用?
【问题讨论】:
标签: elixir continuations
Elixir 有类似 Scheme 的 call-with-current-continuation 的东西吗?有没有办法捕获等待的堆栈帧并将其存储在变量中以供以后使用?
【问题讨论】:
标签: elixir continuations
Erlang/Elixir 没有您在类 Scheme 语言中可以找到的经典 call/cc。
不过,您可以在 Elixir 中编写 CPS 风格的代码。您可以在函数中捕获当前闭包并将其传递并以这种方式手动分割您的计算。
编辑:我刚刚以 CPS 样式实现了 ANF 转换[1]。它可以作为灵感。
[1]https://gist.github.com/m1dnight/053494cdc35b89af6fe0b3b63283abd0
【讨论】: