🌟

OOPプログラマーのFP入門としておすすめの1冊: 『なっとく!関数型プログラミング』

2023/11/12に公開

『なっとく!関数型プログラミング』を読んだ。
https://www.shoeisha.co.jp/book/detail/9784798179803

読んだとは言いつつ、11章の途中で、開発環境の問題でプログラムが意図通り動作せず、中断したままとなっている。また、続く12章では、11章で作成したプログラムを使ってテストコードを書いていくため、こちらもちゃんと取り組めていない。
中途半端な状態で本記事を書いていることをご容赦いただきたい。

本書は普段オブジェクト指向プログラミング(以下OOP)をしている開発者にとっての、関数型プログラミング(以下FP)の入門書となっている。本書で扱うプログラミング言語は主にScalaだが、Scalaについての入門書ではないことに注意してほしい。ScalaはあくまでFPのためのツールであり、Scalaを通じてFPの考え方や手法を学ぶことが本書の目的である。
本書の対象読者は次のように定義されている。

本書では、Javaのような主流のオブジェクト指向プログラミング言語を使って、
仕事としてソフトウェアを開発した経験が少なくとも1年はある読者を対象としている。
例の言語にはScalaを使っているが、本書はScalaの本ではない。
Scalaや関数型プログラミングの予備知識は要求されない。
(p.vi)

FPについて既に多くの書籍やWeb記事で解説がなされているが、OOPとは別のパラダイムであるため、既にOOPにどっぷり浸かっているプログラマーにとっては学習障壁がやや高いと思われる。
本書はそういったOOPプログラマーにとってのFP入門に最適な本である。

本書では各章ごとに要件が提示され、要件を満たすためのプログラムを書いていく流れとなっている。
要件を満たすソリューションとして、まずはじめにOOPでの例を提示する。そしてOOPバージョンのソリューションの問題点を提示し、FPにより改善を図っていくという構成になっている。
前章で学んだ内容を使って、より発展的な要件を次章で学んでいく流れになっているため、1章から順に取り組んでいくことで、FPの考え方が自然に身につくような構成になっている。
付録はScalaの知識やFPの重要なポイントを目録的に参照できるものとなっており、実際にFPを使って開発していく際に役立ちそうだ。

全体としてとても親切な構成になっている印象を受けた。
OOPプログラマーにとっての最初のFP入門書としておすすめできる1冊となっている。

本の紹介

Discussion