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

**Prerequisites**:

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

1.1: **Overview Part 1**

Category Theory (CT) = Summary ofALLMathematics

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: , - 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

**invented were derived from forms & shapes (images) of the mother Earth & Nature:**

*Languages*- Ancient Greek Geometry (3000 years) ;
- 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): (assumed naturality)

**Refs**:

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

https://github.com/hmemcpy/milewski-ctfp-pdf