【问题标题】:Elixir and continuation-passing style长生不老药和连续传递风格
【发布时间】:2019-08-02 04:18:32
【问题描述】:

Elixir 有类似 Scheme 的 call-with-current-continuation 的东西吗?有没有办法捕获等待的堆栈帧并将其存储在变量中以供以后使用?

【问题讨论】:

    标签: elixir continuations


    【解决方案1】:

    Erlang/Elixir 没有您在类 Scheme 语言中可以找到的经典 call/cc。

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-02-01
      • 1970-01-01
      • 2016-01-08
      • 2010-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多