CategoryTheoryForProgrammers
CategoryTheoryForProgrammers copied to clipboard
Notes from Category Theory for Programmers lessons by Bartosz Milewski
Category Theory for Programmers
These are my notes taken from the video lessons by Bartosz Milewski about Category Theory for Programmers. You can find the videos in Youtube:
Part 1
- Motivation and Philosophy
- What is a category?
- Functions, epimorphisms
- Monomorphisms, simple types
- Examples of categories, orders, monoids
- Kleisli category
- Terminal and initial objects
- Products
- Coproducts, sum types
- Algebraic data types
- Functors
- Functors in programming
- Functoriality, bifunctors
- Monoidal categories, Functoriality of ADTs, Profunctors
- Function objects, exponentials
- Type algebra, Curry-Howard-Lambek isomorphism
- Natural transformations
- Bicategories
- Monads
- Monoid in the category of endofunctors
Part 2
- Declarative vs. Imperative
- Limits
- Limits, Higher order functors
- Limits, Naturality
- Examples of Limits and Colimits
- Free Monoids
- Representable Functors
- Yoneda Lemma
- Yoneda Embedding
- Adjunctions
- Examples of Adjunctions
- Free-Forgetful Adjunctions, Monads from Adjunctions
- Comonads
- Comonads categorically and examples
- F-Algebras, Lambek's Lemma
- Catamorphisms and Anamorphisms
- Lenses
- Lenses categorically