TL;DR
- 圏論の概念を、C++ と Haskell のコードを使って解説する本である。
- 定理と証明を繰り返す数学書ではなく、プログラマーが慣れた技術書のスタイルで書かれている。
- 入門的な話題から、モナド、コモナド、カン拡張、豊穣圏、トポス、ローヴェア理論といった発展的な話題までを扱う。
対象読者
圏論に関心はあるが数学的な背景に不安がある人や、関数型プログラミングの理解を理論の面から補いたいプログラマーに向けた本である。圏論は型理論やラムダ計算と並ぶ理論的な基盤の一つとされる。C++ の基礎文法は前提とするが、Haskell は未経験者にも配慮して段階的に説明する。
原著は Category Theory for Programmers で、有志による日本語訳をもとにしている。
目次
- 圏:合成の本質
- 型と関数
- 圏のさまざま
- クライスリ圏
- 積と余積
- シンプルな代数的データ型
- 関手
- 関手性
- 関数型
- 自然変換
- 宣言的プログラミング
- 極限と余極限
- 自由モノイド
- 表現可能関手
- 米田の補題
- 米田埋め込み
- 射こそすべて
- 随伴
- 自由/忘却随伴
- モナド:プログラマーの定義
- モナドと計算効果
- 圏論から見たモナド
- コモナド
- F-代数
- モナドの代数
- エンドとコエンド
- カン拡張
- 豊穣圏
- トポス
- ローヴェア理論
- モナド・モノイド・圏