Category Theory in Computing

Table of Contents

1. Introduction

Category theory provides a unifying mathematical framework for understanding computation, types, and program structure through objects, morphisms, and their compositions.

2. Fundamental Structures

3. Monad Structure

diagram-monad-operations.png

4. Categorical Patterns in Programming

5. Strange Loops and Self-Reference

diagram-strange-loop.png

6. Implementation in Scheme

6.1. Category as Record

(define-record-type <category>
  (make-category objects morphisms compose identity)
  category?
  (objects category-objects)
  (morphisms category-morphisms)
  (compose category-compose)
  (identity category-identity))

(define (functor-map F f)
  "Apply functor F to morphism f"
  ((functor-fmap F) f))

7. Applications

  • Type systems (Hindley-Milner as adjunction)
  • Functional reactive programming
  • Database query optimization
  • Concurrent and distributed systems
  • Effect systems and algebraic effects

8. Resources

  • Categories for the Working Mathematician (Mac Lane)
  • Category Theory for Programmers (Milewski)
  • Seven Sketches in Compositionality (Fong & Spivak)