TL;DR

  • 圏論の考え方と、それがプログラミングにどう当てはまるかを、コード例とともに解説するプログラマ向けの本である。
  • 著者によると、圏論はプログラムを合成可能にする構造を扱い、合成はプログラミングの本質でもある。

対象読者

計算機科学者ではなく、抽象的な数学に気後れしつつも使ってみたいエンジニアを想定している。圏論や関数型プログラミングの経験は前提にしていない。考えを書き表す言語にはHaskell を使い、使うたびに少しずつ説明する。Haskell を知らない読者のために C++ の例も載せている。

目次

Part One

  1. Category: The Essence of Composition
  2. Types and Functions
  3. Categories Great and Small
  4. Kleisli Categories
  5. Products and Coproducts
  6. Simple Algebraic Data Types
  7. Functors
  8. Functoriality
  9. Function Types
  10. Natural Transformations

Part Two

  1. Declarative Programming
  2. Limits and Colimits
  3. Free Monoids
  4. Representable Functors
  5. The Yoneda Lemma
  6. Yoneda Embedding

Part Three

  1. It’s All About Morphisms
  2. Adjunctions
  3. Free/Forgetful Adjunctions
  4. Monads: Programmer’s Definition
  5. Monads and Effects
  6. Monads Categorically
  7. Comonads
  8. F-Algebras
  9. Algebras for Monads
  10. Ends and Coends
  11. Kan Extensions
  12. Enriched Categories
  13. Topoi
  14. Lawvere Theories
  15. Monads, Monoids, and Categories

関連