第101回素人くさいSICP読書会

  • P222-223
  • @コントロールプラス株式会社
    • (紅茶ごちそうさまでした)
  • 参加者 7 名 (builtin * 1)
  • Exercise 4.8
    • 名前,名前,名前,...
    • letrec に変換したいけど...
    • 内部 define は使える?
    • define と set! の違い
    • Dynamic Scope が嬉しいことって「実装が簡単」以外に何かあったっけ?
    • Unlambda
    • PHP はステキ仕様
    • Y-コンビネータ使って???
  • Exercise 4.9
    • 素振り感強し...
    • do, for, while, until のどれか一つやれば良いことに
    • 再帰があればループなんて要らないじゃん!
    • また名前汚染が...
    • Yコンビネータ 使うと良いんじゃないか?
  • misc
  • Yコンビネータ (PGの会社にあらず) の歴史 (書きかけ)
    • 読書会で平田さんが Exercise 4.8 を Y コンビネータ (オペレータ) を使って解いていたことから,なぜか Y の起源が話題になったので少し調べてみた.
      • とりあえず H. Barendregt の The Lambda Calculus: Its Syntax and Semantics (1980) isbn:9780444875082Haskell Curry の Combinatory Logic: Volume 1 (1958) isbn:9780720422078 を確認してみた.
      • Shoenfinkel (1924) とか調べてないので不明だが,どうやら Y という名前が使われたのは Curry (1958) が最初?らしく, Paradoxical Combinator という節でラッセルのパラドクスからYを導出していた.
      • ただし,不動点コンビネータとしては Barendregt (1980) によれば,Turing (1937) には既に定義があるらしい.