クロージャについて

http://capsctrl.que.jp/kdmsnr/wiki/bliki/?Closure
では

基本的にクロージャとは、ブロック化されたコードのことを指します。

と書いてある。
異論ある人もおろうがここから出発するのが分かりやすいと自分は感じた。


ブロック化されていて、
独自のスコープを持ち、
その中に自前の変数を持つことができる。
ブロックの外の変数を参照することもできる。
まとまりとして(Rubyの場合はオブジェクトとして)戻されたり、渡されたりすることが可能。


そういうものがクロージャ


クロージャが、それが定義されたスコープにある変数を参照する」ということの勝手なイメージとしては「料理のたびに実家に電話をかけてレシピの分量を聞くお嫁さん」
元いた場所の空気をひきずっているというかなんというか。例えを持ち出すとオブジェクト臭がしてくるのであまりよくないとは思うけど。

カイゼン」のハウツー本がいろんな会社に出回るけど、なぜか問い合わせは全部トヨタに行ってしまう、とか。