「プログラマが知るべき97のこと」の2つ目の話題はこれも旬な関数型プログラミングの話題です。マルチコア時代が関数型プログラミングの流行の1つの理由ですが、自分も「関数型プログラミングのパラダイムを充分に学べば、その知識、技術は、マルチコアへの対応以外にも幅広く役立つでしょう」という記述に共感を覚えます。 きのこ本にも書いてあるように最も重要なの参照透過性(referential transparency)です。簡単にいえばどんな状況でも入力(インプット)に対する出力(アウトプット)が変わらないことです。それはオブジェクトの副作用を減らすこと、不変オブジェクトを好んで使わなければ実現できません。全ての状況で 参照透過性を遵守したほうが良いわけではありませんが、参照透過性を意識した設計は、単体テストがやりやすく、開発の現場でも強く意識させている項目の1つです。自分の場合は、Scalaを知ってい
![02-関数型プログラミングを学ぶことの重要性 - やさしいデスマーチ](https://cdn-ak-scissors.b.st-hatena.com/image/square/6d7249f077ecb4c64d9691f529a86b46107a2ba9/height=288;version=1;width=512/https%3A%2F%2Fimages-fe.ssl-images-amazon.com%2Fimages%2FI%2F511RPej0BNL._SL160_.jpg)