2019-02-01から1ヶ月間の記事一覧

Scheme のメタ循環インタプリタに関する備忘録(3) — 多値と apply —

「Scheme のメタ循環インタプリタに関する備忘録(2) — call/cc —」の続きです。 継続に多値を渡せるようにしましょう。 このインタプリタは渡されたコードを継続渡し形式の手続きに変換しながら処理します。 継続渡し形式の手続きや継続は、末尾呼び出しで呼…

Scheme のメタ循環インタプリタに関する備忘録(2) — call/cc —

「Scheme のメタ循環インタプリタに関する備忘録(1)」の続きです。 https://gist.github.com/brv00/bee4093b023448fcd8505583c40f3cf2/0c7509bb4bc14f245eb2deb39568402b5cc9005d の call/cc が失敗する例を挙げておきましょう。0を無限に印字する(はずの)…

Scheme のメタ循環インタプリタに関する備忘録(1)

JScheme には継続を取得する仕組みがありません。そこで継続が取得できるメタ循環インタプリタを(JScheme で)書くことにしました。 0 から作るのは大変な気がするので『The Scheme Programming Language』の Extended Examples の Section 7. A Meta-Circu…