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 + :)))