M12i.

学術書・マンガ・アニメ・映画の消費活動とプログラミングについて

Venkat Subramaniam『Javaによる関数型プログラミング ―Java 8ラムダ式とStream 』

Javaによる関数型プログラミング ―Java 8ラムダ式とStream

Javaによる関数型プログラミング ―Java 8ラムダ式とStream

Java8で追加された(擬似)関数型プログラミングAPIを、各種利用ケースごとに取り上げて説明してくれる。

このAPIの導入は大きなメリットともに、ある種の曖昧性も伴うものであり、チェック例外に関連する煩雑性やリスクも生じさせる。それらについて、丁寧に説明をしてくれている点はありがたい。

それにしてもJava8についてだが、末尾再帰のチャプターを読んでいて、はやくもこのバージョンにおける限界を見てしまった感を禁じ得ない…。

また上述の例外のハンドリングに関する部分では、関数型プログラミングであればEitherが使用され──計算の入力も出力もEitherとすることで、「失敗するかもしれない計算」「前段ですでに失敗しているかもしれない計算」を表現できたものだが、管見の限りJava8のAPIにはそれらしいものが見つからない。これもちょっと残念なところだった。