HN 日本語サマリー

← 一覧へ戻る
プログラミング

Show HN: 配列言語におけるコンビネータ

Show HN: Combinators in Array Languages (blog.softwarewrighter.com)

9 pointsby softwarewright0 コメント

要約

この記事は、レイモンド・スマリヤンの著書「To Mock a Mockingbird」に登場するコンビネータ鳥をAPL派生言語で実装する際の課題、特に熱心評価言語におけるSage鳥(Yコンビネータ)の実装問題について論じています。厳密評価言語でのYコンビネータの代替としてZコンビネータが紹介され、その実装方法とスマリヤンの書籍との関連性についても触れています。

全文翻訳

レイモンド・スマリヤンの著書「To Mock a Mockingbird」に登場するコンビネータ鳥をAPL派生言語で実装すること、そして熱心評価言語でSage鳥(不動点またはYコンビネータ)を実装する際の問題について説明します。 新しいAPLは遅延評価をサポートしています。私の熱心評価言語にはこのための回避策があります。Zコンビネータは標準的な厳密言語での修正方法です。自己適用を1つの追加関数レイヤー(λv. x x v)でラップすることで、再帰は実行中の式ではなく値(遅延された呼び出し)になります。sw-MLPLでは、言語に匿名ラムダがないため、この遅延を名前付き部分適用(z_step/z_recur/applicative_sage)として表現します。 Zにはスマリヤンの名前がなく(文字にもかかわらず、鳥類園にシマウマもいません)、本は厳密性問題を予期しておらず無視しているため、適用順序のバリアントがありません。「Zコンビネータ」は、イータ展開されたYコンビネータに対するプログラマの俗説です。