序文
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
ここ数年、関数型プログラミング(FP)はルネッサンスを迎えている。Java、JavaScript、Pythonなど、もともと関数型として設計されていなかった言語が、時代とともに関数型機能を含むように進化してきたため、多くの企業がFPの経験を持つプログラマを求めている。関数型の経験を持つプログラマが求められているのは、関数型に従うとバグが少なくなり、より拡張性のある堅牢なコードが生成されるという感覚を含む、開発プロセスが改善されたと認識されているためでもある。これが真実かどうか、そして今後数年間に書かれるコードのより多くの割合が関数的であるかどうかは、時が経てば明らかになるだろう。今のところは、FPを数あるパラダイムのうちのひとつと考え、それぞれに長所と短所があるとしておこう。
誰がこの本を使うべきか?
基本的にはすべてのプログラマが対象だ。FPの経験はないが、FPについて聞いたことがあり興味がある、あるいはFPの知識がなくても店頭で本書を手に取ったという人にとっても、本書は役に立つだろう。経験豊富なFPプログラマにとっても、きっと利点が発見できるだろう。 本書はFPの根源であるカテゴリー理論について、このテーマに関する他の本にはない方法で掘り下げている。最後に、FPの使用経験はある程度あるが、FPを構成する概念や理論についてより高度な理解を得たいと考えているプログラマにとっても、本書は多くの発見と楽しみを与えてくれるだろう。
本の構成
私は、様々なプログラミング言語を通して、関数的な構成要素がコードをどのように改善できるかを示そうと努めている。しかし、Scalaでは関数型のアイデアを簡単に表現できるため、コード例にはScalaがよく選ばれていることにお気づきだろう。Scalaでは関数型のアイデアを自然言語で表現できるため、読者は関数型のアイデアをより簡単に理解することができる。Scalaのミニ入門については、付録を参照のこと。
本書で使用されている慣例
本書では、以下の表記規則を用いている:
- イタリック体
-
新しい用語、URL、メールアドレス、ファイル名、ファイル拡張子を示す。
Constant width-
変数名や関数名、データベース、データ型、環境変数、ステートメント、キーワードなどのプログラム要素を指すために、プログラムリストや段落内で使用される。
チップ
この要素は、ヒントや提案を意味する。
注
この要素は一般的な注釈を意味する。
警告
この要素は警告や注意を示す。
オライリー・オンライン・ラーニング
注
オライリー・メディアは40年以上にわたり、テクノロジーとビジネスに関するトレーニング、知識、見識を提供し、企業の成功を支援してきた。
オライリー独自のエキスパートとイノベーターのネットワークは、書籍、記事、オンライン学習プラットフォームを通じて、その知識と専門知識を共有している。オライリーのオンライン学習プラットフォームでは、ライブトレーニングコース、詳細な学習パス、インタラクティブなコーディング環境、オライリーおよび200以上の出版社からのテキストやビデオの膨大なコレクションにオンデマンドでアクセスできる。詳細については、http://oreilly.com。
問い合わせ先
本書に関するコメントや質問は、出版社までお寄せいただきたい:
- オライリー・メディア社