The most interesting “Category Theory” （范畴论) for Programmers course III by Dr. Bartosz Milewski , a follow-up of last year’s course II.
- 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 of ALL Mathematics
Functional Programming = Application of CT
- 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 Languages invented were derived from forms & shapes (images) of the mother Earth & Nature:
- 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.
- 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)
1. Download BM’s book “Category Theory for Programmers” :