TL;DR

  • 圏論の概念を、C++ と Haskell のコードを使って解説する本である。
  • 定理と証明を繰り返す数学書ではなく、プログラマーが慣れた技術書のスタイルで書かれている。
  • 入門的な話題から、モナド、コモナド、カン拡張、豊穣圏、トポス、ローヴェア理論といった発展的な話題までを扱う。

対象読者

圏論に関心はあるが数学的な背景に不安がある人や、関数型プログラミングの理解を理論の面から補いたいプログラマーに向けた本である。圏論は型理論やラムダ計算と並ぶ理論的な基盤の一つとされる。C++ の基礎文法は前提とするが、Haskell は未経験者にも配慮して段階的に説明する。

原著は Category Theory for Programmers で、有志による日本語訳をもとにしている。

目次

  1. 圏:合成の本質
  2. 型と関数
  3. 圏のさまざま
  4. クライスリ圏
  5. 積と余積
  6. シンプルな代数的データ型
  7. 関手
  8. 関手性
  9. 関数型
  10. 自然変換
  11. 宣言的プログラミング
  12. 極限と余極限
  13. 自由モノイド
  14. 表現可能関手
  15. 米田の補題
  16. 米田埋め込み
  17. 射こそすべて
  18. 随伴
  19. 自由/忘却随伴
  20. モナド:プログラマーの定義
  21. モナドと計算効果
  22. 圏論から見たモナド
  23. コモナド
  24. F-代数
  25. モナドの代数
  26. エンドとコエンド
  27. カン拡張
  28. 豊穣圏
  29. トポス
  30. ローヴェア理論
  31. モナド・モノイド・圏

関連