僕は、Javaでプログラミングを始めて8年以上になります。 ここ数年、RubyやScalaを少しずつ学んでいます。 やっと、さっとWebアプリケーションを作るのに、 Ruby(Sinatra)で作れるようになってきました。 Ruby、Scalaと進んでいくと、 Javaになかった概念がいろいろ出てきて、 ちょっとあやふやなまま進んでいるところもあります。 そういった概念のうちいくつかを、整理してみます。 クロージャ JavaScriptにもあって、何となくわかって/使っているけど、 説明しろと言われると少し困ってしまう。 それがクロージャ。 クロージャとは、こう定義されます。 「レキシカルスコープを伴うファーストクラスの関数」 言語設計者たちが考えること p.176 言語設計者たちが考えること (Theory in practice) 作者: Federico Biancuzzi,Shan
![Javaプログラマが悩むラムダとクロージャと匿名関数と - Fight the Future](https://cdn-ak-scissors.b.st-hatena.com/image/square/221f2985405e34e8f87ac3b694468580afc08114/height=288;version=1;width=512/http%3A%2F%2Fecx.images-amazon.com%2Fimages%2FI%2F51LohPEEriL.jpg)