タグ

ブックマーク / qiita.com/k1complete (1)

  • Elixirでの継続渡しマクロと非決定性オペレータの実装 - Qiita

    はじめに この記事は on lisp を参考にelixir向けにカスタマイズしています。 まず、継続の説明を行った後、継続渡しマクロを実装し、その後、非決定性オペレータの実装を行っています。 継続(continuation) 継続 とは、ある時点での、計算の未来といえます。例えば、REPLから式a + double(b) を評価しているとすると、double(b)の評価を完了してその値がretだとして、その継続は a+(ret) となります。つまり、fn(x) -> a + x end が 式a + double(b) の double(b)の評価が完了した時点 での継続となります。 schemeでは、任意の時点で継続をとりだし、一変数の無名関数としてあつかうことができますが、Elixirでは残念ながら継続をサポートしていません。 ところで、クロージャはある時点での計算に必要な資源をまとめ

    Elixirでの継続渡しマクロと非決定性オペレータの実装 - Qiita
    lEDfm4UE
    lEDfm4UE 2015/12/08
  • 1