长生不老药和延续传球风格

时间:2019-03-11 19:15:24

标签: elixir continuations

Elixir有类似Scheme的call-with-current-continuation吗?是否可以捕获等待的堆栈帧并将其存储在变量中以备后用?

1 个答案:

答案 0 :(得分:1)

Erlang / Elixir没有类似方案的语言所能找到的经典呼叫/ cc。

不过,您只能在Elixir中编写CPS风格的代码。您可以捕获函数中的当前闭包,然后将其传递并以这种方式手动切片计算。

编辑:我刚刚以CPS样式实现了ANF转换[1]。它可以作为灵感。

[1] https://gist.github.com/m1dnight/053494cdc35b89af6fe0b3b63283abd0