タグ

ブックマーク / blog.bugyo.tk (1)

  • Y Combinatorって言いにくいから不動点演算子で。 (リリカル☆Lisp 開発日記)

    なんか最近(*) Y Combinator(以下『不動点演算子』)の話題が各所であがっていますが、 あれこれ話はあるものの結局のところ、 F(YF) = YF という式を成り立たせるもの――"不動点"という名の通り、YFをFの不動点にするものだと思います。 (ここの説明が分かりやすいかと。) 不動点演算子自身はこれ以上でも以下でもなく、使い道し次第かと。 記号や演算を最小限にしたのがλ計算だって話もあがってますが、 単純にするならもっと単純にできます。 K ≡ λxy.x S ≡ λxyz.(xz)yz この二つを使えば関数抽象(関数の作成)をすることなく、 関数適用(関数の呼び出し)だけで全てを表せます。 例えば、チャーチ数の 0≡λgu.u は ((s ((s (k s)) (k k))) (k k)) と表せますし、 チャーチ数の後者関数 suc≡λxgu.g((x

  • 1