1章Hello、ラムダ式!

ソフトウェア設計には2つの方法が存在する。

1つはひと目見ただけで欠陥が存在しないことがはっきりわかるほどシンプルにすることで、もう1つはひと目見ただけでは欠陥の有無を判断できないほど複雑にすることだ。

前者は後者よりはるかに難しい。

――Sir Charles Antony Richard Hoare

Javaのコーディングスタイルに大きな変革がもたらされようとしています。

この変革により、日常のタスクがよりシンプルで簡単に、そしてより高い表現力を持つことになります。このJavaの新たな記法は他の言語には10年以上前から備わっていたものですが、これらの記法がJavaにもたらされることによって、簡潔でエレガント、そしてより高い表現力を持ったコードを、より少ないエラーで記述できます。簡単にポリシーを強制でき、一般的なデザインパターンをより少量のコードで実装できます。

本書では、プログラマとして日常的に目にするタスクを例に、関数型スタイルのプログラミングを紹介します。この新しい設計・プログラミング手法、そしてエレガントなスタイルに飛び込む前に、それがなぜ従来より優れているものなのかを説明しておきましょう。

1.1 考え方を変える

命令型スタイル。Javaがその誕生時から開発者に提供しているスタイルです。このスタイルでは、開発者は実行したいすべてのステップをJavaに命令し、そしてJavaがそれらを忠実にこなしていく様子を眺めていました。もちろんこれ自体に問題はありませんが、若干低レベルです。そのため、コードが冗長になる傾向があり、開発者はJavaがもう少しインテリジェントだったら、と思うこともありました。インテリジェントな言語において開発者は「どのように実行するか」ではなく「何を実行してほしいか」を「宣言的に」命令することができます。ありがたいことに、これからはJavaでもそのようなスタイルを使うことができるようになりました。 ...

Get Javaによる関数型プログラミング ―Java 8ラムダ式とStream now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.