今まで知らなかったのだが、Groovy に関数型言語で有名なカリー化(currying)のための仕組みが用意されていたので試してみた。 Groovy でのカリー化 やり方は非常に簡単で、クロージャに定義される curry() メソッドにカリー化する引数を渡してやれば、指定した引数でカリー化されたクロージャが生成される。 //クロージャの定義 def f = {x, y, z -> x + y + z} //x の値に 100、 y の値に 20を指定したクロージャが生成される def f1 = f.curry(100, 20) //z の値を指定して結果を取得 println f1(3) //x の値に 1 を指定したクロージャが生成される def f2 = f.curry(1) //y と z の値を指定して結果を取得 println f2(20, 300) //f2 に y の値に 2