Category Theory III for Programmers (Part 1 & 2)

The most interesting “Category Theory” (范畴论) for Programmers course III by Dr. Bartosz Milewski , a follow-up of last year’s course II.


  1. Fundamental of Category Theory: Functor, Natural Transformation, etc. (Course II Series)
  2. (Nice to have) : Basic Haskell Functional Programming Language. (Quick Haskell Tutorial)

1.1: Overview Part 1

Category Theory (CT) = Summary of ALL Mathematics

Functional Programming = Application of CT

Philosophical Background:

  • Math originated 3,000 years ago in Geometry by Greek Euclid with Axioms and deductive (演译) Proof-driven Logic.
  • Geometry = Geo (Earth) + Metry (Measurement).
  • Math evolved from 2-dimensional Euclidean Geometry through 17 CE French Descartes’s Cartesian Geometry using the 13CE Arabic invention “Algebra” in Equations of n dimensions: (x_1, x_2,..., x_n) , (y_1, y_2,..., y_n)
  • Use of Algebra: 1) Evaluation of algebraic equations (in CT: “Functor”) ; 2) Manipulation. eg. Substitution (in CT : “Monad” ), Container (in CT: “Endo-Functor” ), Algebraic Operations (in CT: “Pure, Return, Binding” ).
  • Lawvere Theories: unified all definitions of Monoids (from Set to CT)
  • Free Monoid = “List” (in Programming). Eg. Concatenation of Lists = new List (Composition, Associative Law) ; Empty List (Unit Law).
  • Advance of Math in 21CE comes back to Geometry in new Math branches like Algebraic Geometry, Algebraic Topology, etc.

Note: The only 2 existing human Languages invented were derived from forms & shapes (images) of the mother Earth & Nature:

  1. Ancient Greek Geometry (3000 years) ;
  2. Ancient Chinese Pictogram Characters (象形汉字, 3000 years 商朝. 甲骨文 ) .

1.1: Overview Part 2

Keypoints: (just a ‘helicopter’ view of the whole course syllabus)

  • Calculus: infinite Product, infinite Sum (co-Product), End, co-End.
  • Kan-extensions
  • Geometry in “Abstract” aka Topology: “Topos”
  • Enriched Category : (2-category) Analogy : complex number makes Trigonometry easy; same does Enriched Category.
  • Groupoid => “HTT” : Homotopic Type Theory

2.1 String Diagrams (Part 1)

Composing Natural Transformations (Vertical & Horizontal): \alpha \; \beta (assumed naturality)

2.2 Monad & Adjunction


1. Download BM’s book “Category Theory for Programmers” :

One thought on “Category Theory III for Programmers (Part 1 & 2)

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s