読了:Javaによる関数型プログラミング[ヴェンカット・サブラマニアム/プログラミングシステム社]

Javaによる関数型プログラミング

Javaによる関数型プログラミング

  • 作者:ヴェンカット・サブラマニアム/プログラミングシステム社
  • 出版社:オライリー・ジャパン
  • 発売日: 2014年10月

Java 8新機能のラムダ式や、Stream APIの特徴を、コンパクトに解説!考え方、API、設計、そして遅延評価や再帰を詳述。

1章 Hello、ラムダ式!/2章 コレクションの使用/3章 文字列、コンパレータ、フィルタ/4章 ラムダ式で設計する/5章 外部リソースを扱う/6章 「遅延させる」ということ/7章 再帰の最適化/8章 ラムダ式で合成/9章 すべてをまとめて/付録

あんまり仕事関係の本は記録に残していないんだけれども。プログラミング言語としてJavaを使う開発現場から遠ざかってかなりたつ(たまにちょい使い程度はあったけど)。ちょっと自分の中の情報をアップデートしておかなければならないと思って、Javaの勉強を。現場から離れる直前にリリースされたのがJava5だった。そこから今やJava13だって?すっかり置いていかれちまっているぜ。この間でもっとも変わったのはJava8なんだろうな。Java8で導入されたラムダ式を見て、そうかJavaも関数型を使えるようになっていたのかとは思ったものの、「なんとなくこんなもんか」程度ですませていた。ところが、どうやらラムダ式はStreamと一緒に使うとステキなことが多いらしくて、それなのに自分にはこのStreamというものがいったい何者なのかが全く分からない。コードを見ても何をするものなのかが今一つよくわからない。というわけで、そのものずばりが副題に付いている分かりやすそうな本を見つけたので読んでみた。

本自体は薄いんだけれども、実際にどれだけ強力な武器をJavaは手に入れていたのかがよくわかった。ある課題をこれまでの(Java7までの)手続き型で組むとこうなるよねというコードがまず示される(自分もこう実装するはずだ)。で、そこからラムダ式とStreamを使ってリファクタリングをしていく過程をコードとともに示していく。おぉ、なるほど、活用できればシンプルでエレガントに表現できるかも。確かにこれはJavaに対する世界観が変わるな。何年も前から世の中そんなことになっていたとは……(この本が2014年だもんね)。

Javaによる関数型プログラミング[ヴェンカット・サブラマニアム/プログラミングシステム社]

こちらの記事もぜひ!!