02-関数型プログラミングを学ぶことの重要性

プログラマが知るべき97のこと」の2つ目の話題はこれも旬な関数型プログラミングの話題です。マルチコア時代が関数型プログラミングの流行の1つの理由ですが、自分も「関数型プログラミングパラダイムを充分に学べば、その知識、技術は、マルチコアへの対応以外にも幅広く役立つでしょう」という記述に共感を覚えます。
きのこ本にも書いてあるように最も重要なの参照透過性(referential transparency)です。簡単にいえばどんな状況でも入力(インプット)に対する出力(アウトプット)が変わらないことです。それはオブジェクトの副作用を減らすこと、不変オブジェクトを好んで使わなければ実現できません。全ての状況で 参照透過性を遵守したほうが良いわけではありませんが、参照透過性を意識した設計は、単体テストがやりやすく、開発の現場でも強く意識させている項目の1つです。自分の場合は、Scalaを知っていく中で、これまでJavaで培ってきたノウハウへバックポートしてきました。Scala自体はまだまだ使いこなせているわけではありませんが、Scalaを学ぶことでJavaのコードがより関数的になり、単体テストがやりやすくなり、テスト駆動開発を推進させる事になっています。
結論は変わりません。皆さんも関数型プログラミングを学びましょう。

プログラマが知るべき97のこと

プログラマが知るべき97のこと