できるかどうかわからんがやってみる。 きっかけは会社の人がJava8のラムダ式は難しいと言っていたから。 確かに関数型言語をいきなりJavaから学ぶのは難しいんじゃないかな。 なぜ難しく感じるのかというと、Javaはオブジェクト指向言語を前提に設計しているのに関数型言語の概念を無理矢理ねじ込んだから。 Javaは良くも悪くも互換性を大事にするから、既存の構成を崩さず関数型を利用できるようにすると使い勝手が悪くなる。 元からオブジェクト指向と関数型の両方の概念をベースに設計していたらもっとわかりやすくなってたと思うけど。 さて、本題。 Javaのラムダ式を説明するにあたって、Groovyを比較にして説明しようと思う。 なぜGroovyか?Javaに近いし、ラムダ式の概念がわかりやすいから。 Groovyだとラムダ式はこう書ける。 // 定義 Closure increment = { x -

