Categories for the Working Hacker
summary
Shows concrete equivalences: products (records/pairs) and sums (disjoint unions/variants) correspond to conjunction and disjunction, and functions are exponentials (finite maps) so type counts obey familiar arithmetic identities. Demonstrates verbose Java encodings versus compact Haskell definitions, cites blockchain languages Simplicity and Michelson using category primitives, and Plutus implemented with System F Omega. Claims duality (flip arrows to get sums from products), gives working examples and compilation insights rather than abstract fluff.
AI-written summary · about
chapters (12)
- 0:00Introduction to math
- 1:01Overcoming fear of math
- 2:51Category theory basics
- 5:32Introduction to products
- 8:59More on products
- 13:21Products in Java/Haskell
- 18:57Introduction to sums
- 24:31Sums in Java/Haskell
- 30:56Exponentials and blockchain
- 33:44Type theory in practice
- 36:00Duality and conclusion
- 40:46Closing thoughts
related talks
52mData Over Code: A Short Hyperbole
16mIndexed Streams: A Formal Intermediate Representation for Fused Contraction Programs
52mPattern Functors...
15mUniversal Scalability in Declarative Program Analysis (with Choice-Based Combination(…)
38mAdd ALL the things: abstract algebra meets analytics
57mAlgebraic Databases
17mFixpoints for the Masses: Programming with First-Class Datalog Constraints
01h 01mLogic and Algebras for Distributed Computing: Applications and Open Questions
