Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Purely Functional Smalltalk-72

Purely Functional Smalltalk-72

SchemeのマクロでSmalltalk-72をシミュレートします。それを踏まえて言語デザインについて考えます。

Minori Yamashita

December 27, 2012
Tweet

More Decks by Minori Yamashita

Other Decks in Programming

Transcript

  1. 自己紹介 山下実則(19) • ハンドル: ympbyc ◦ twitter, github …etc •

    代々木の12階でWebとスマホやってます。 • Available for hire 9月の合同勉強会でLittleSmallscriptの発表をさせ て頂きました。今回もよろしくです。
  2. • The first real Smalltalk ◦ -71は仲間内だけ? • 記号がいっぱい •

    名前呼び出し。レシーバがトークンを食いながら 実行されて行く • クラスベースオブジェクト指向 ◦ クラスを関数としても呼び出せる ◦ 継承はない (-76から) • 本来は関数型的な思想 ◦ 代入dis • Lispの特殊形式をdisりながら作られた ◦ 全てメッセージングなのが理想 概要だけ…
  3. (☞ x ← : . (+ x 2)) ☟ (lambda

    (x) (+ x 2)) 定義側 ((foo 'bar) 5) ;=> 7 呼び出し側 これは、 (foo 'bar 5) と書きたい。後で出てきます。
  4. to

  5. (to animal (name) ( 'name ⇒ name '())) (define (animal

    name) (Z (lambda (SELF) (lambda (⇒) (if (equal? 'name ⇒) name '()))))) ☟ メソッド名が束 縛される
  6. "take the hardest and most profound thing you need to

    do, make it great, and then build every easier thing out of it" Alan Kay 1993
  7. そこでケイは 関数を"Make it great"するのではなく、 "The hardest and most profound thing"

    として、オブジェクトとメッセージングを選ん だ。 Smalltalkでこれは成功した。
  8. It is unfortunate that much of what is called "object-oriented

    programming" today is simply old style programming with fancier constructs. Many programs are loaded with "assignment-style" operations now done by more expensive attached procedures. Alan Kay 1993
  9. The Early History of Smalltalk http://www.esug. org/data/HistoricalDocuments/Smalltalk80/Smalltalk History.pdf Smalltalk-72 Instruction

    Manual http://www.textfiles. com/bitsavers/pdf/xerox/alto/Smalltalk72_Manual. pdf Nadeko https://github.com/ympbyc/Nadeko 参考