10

私は Oleg と Asai の「for dummies」論文 (http://pllab.is.ocha.ac.jp/~asai/cw2011tutorial/main-e.pdf) を研究していますが、この論文では代わりにシフト/リセット形式を使用しています。 Oleg の delimcc で利用可能なプロンプトのものの。だから私はいくつかの質問があります:

そもそもプロンプトとは?shiftそして、なぜ他の機能に受け継がれるのでしょうか。subcont とは何かを知っていればよいのですが、この記事を読み進めたいだけなので、スキップしてもかまいません。shiftまた、とと の違いは何ですか。論文ではshift0どのように対応していますか。shift

また、resetdelimccには何がありますか? 私の直感はそれを私に伝えておりnew_promptpush_promptどういうわけか に対応していresetます。しかし、ここでも説明が必要です。

編集: 論文の簡単な例を翻訳することができ、私の直感は正しいことがわかりました。ただし、違いの本当の説明と、delimcc がそうである理由を知りたいです。誰かが興味を持っている場合に備えて、ここに両方の​​バージョンがあります

紙:

reset (fun () -> 3 + shift (fun _ -> 5 * 2) - 1)

デリムク:

let _ = let open Delimcc in
  let np = new_prompt () in
  push_prompt np (fun () -> 3 + (shift np (fun _ -> 5 * 2)) - 1)
4

1 に答える 1

11
于 2013-01-21T09:02:35.453 に答える