僕は、Javaでプログラミングを始めて8年以上になります。 ここ数年、RubyやScalaを少しずつ学んでいます。 やっと、さっとWebアプリケーションを作るのに、 Ruby(Sinatra)で作れるようになってきました。 Ruby、Scalaと進んでいくと、 Javaになかった概念がいろいろ出てきて、 ちょっとあやふやなまま進んでいるところもあります。 そういった概念のうちいくつかを、整理してみます。 クロージャ JavaScriptにもあって、何となくわかって/使っているけど、 説明しろと言われると少し困ってしまう。 それがクロージャ。 クロージャとは、こう定義されます。 「レキシカルスコープを伴うファーストクラスの関数」 言語設計者たちが考えること p.176 言語設計者たちが考えること (Theory in practice) 作者: Federico Biancuzzi,Shan