クロージャ

正直,まだクロージャの利点が分かってない.ブロック化されたコードとは言えど,だからそれがどうした,と.そこで,JavaScript とクロージャ - bkブログで取り上げられていた,http://www.torus.jp/memo/x200406/flash_closure.rd.htmlを読んでみた.
とりあえず理解を深めると,Rubyならlambdaやprocで動的に関数を作り,その関数内の局所変数カプセル化

この、 データと関数をひとまとめにしてカプセル化したものを、 クロージャといいます。

という事なのね!わざわざ関数定義やクラスの定義をするほどではないけど,手軽にカプセル化したいって時に便利ってことか.しかし,どんな時に使うべきかやっぱ分かんないので,Perl のクロージャ - naoyaのはてなダイアリーをじっくり「あとで読む」ことにします.


という事は,lambdaで作ったブロックをオブジェクトに格納して,再帰再帰ってブロックをcallしちゃうのは,普通に関数を定義しているのと変わらないのね.