先日、関Javaに行った時、 「Javaのラムダは高階関数じゃないよ~」って教えて頂きました。 う~ん、確かにJavaは関数をファーストクラスオブジェクトとしてサポートしている訳ではないので、高階関数の定義から外れてしまうんだろうな~。。 ただ、クロージャはレキシカルスコープを伴うファーストクラスなので、完全にJavaは未サポートなんだけど、高階関数は ・引数として関数を取れる ・返り値として関数を返せる なので、Java8のラムダサポートでそれっぽく書けるんじゃないかな~って思ってました。 っで、少し興味がわいたので、Java8で高階関数チックに書いてみました。 まずは、僕が大好きなカリー化。ちなみに、カレーは関係ありません。 カリー化ってハスケル・カリーさんに因んで名付けられたんですね、ややこしい。 カリー化 public class CurryTest { static interf