Lispのクロージャ

Lisp処理系作成(ISBN:4871482006)を通勤時間にちょこちょこ読んでいる。
SchemeしかLispを勉強したことがない自分だけに、クロージャの解説に悩んだ。自分にとって、“lambda”とはクロージャを生成するための構文だと思いこんでいたからだ。だが、Lispの歴史からすると大分違うようだ。少なくとも、先の書籍に示されている内容によれば、lambda 式に対し、明示的に環境を結びつけるための構文(function)をつけるようだ。ちなみに、Common Lisp も同様。

つまるところ、lambda とクロージャの概念は、Scheme のように一対一の構成にはなっておらず、別々なのだ。いや、むしろ Scheme に根付くミニマリズムが一対一の対応を導いたと考えるのが無難か。

う〜ん。“lambda で表される手続き” + “環境”が、クロージャの本質ということは理解できるんだけど、自分としては、やっぱクロージャを生成する構文としての“lambda”の方がわかりやすいなぁ。書きやすいだろうし。