何年か前に Closure って何? って質問を受けた。当時、ぼくはその質問に答えることは出来なかった。今も出来る自信がない。だから少し勉強してみた。 初歩の初歩を噛じっただけだけど、考えをまとめるためにエントリーにしてみる。 参考文献 Closure と言えば Lisp ということで、Common Lisp の本を参考にした。 「ANSI Common Lisp」(Paul Graham) pp.96-99 「実践 Common Lisp」(Peter Seibel) pp.66-67 クロージャは「関数と環境を一緒にしたもの」。これがクロージャーの説明として一番良く聞く文言。 クロージャを知っている人にはこれで十分なのでせう。でも、ぼくにはこの説明はまるで霞を掴むように思える。 更に、「ANSI Common Lisp」から引用する。 関数が外部で定義された変数を参照するとき、その変数