Smalltalk

[id:lethevert:20060117:p1]
なんか、ここのコメント欄がすごいですよ。

      • -

ところで、クロージャの起源については、[id:lethevert:20050813:p2]のShiroさんのコメントが参考になりますよ。

      • -

紹介されているSmalltalk-72のクラス定義の仕方、まるでLispですね。(転載して見せたいですけど、コピーできないです。http://www.bitsavers.org/pdf/xerox/alto/Smalltalk72_Manual.pdfのp.28, p.29です)
Lispっぽく書くとこんな感じです。見れば見るほど、クロージャに見える。こういう古い文法を見ると、その生い立ちがよく分かりますね。

(define box (turt size)
  (isnew  (turt set turtle)
          (size set 50)
          (turt place 256 256)
          (SELF draw))
  (draw   (do 4 ((turt go size turn 90))))
  (undraw (turt whilte)
          (SELF draw)
          (turt black))
  (redraw (turt undraw)
          :
          (turt draw))
  (turn   (SELF redraw turt turn :))
  (move   (SELF redraw turt penup go (:) pendn))
  (grow   (SELF redraw size set size + :)))