Functional Programming, especially Haskell, requires the Math foundation in Abstract Algebra, and Category.
Category Theory is called “The Mathematics of Mathematics“, also the “Abstract Nonsense“.
Key Motivations for Category Theory 范畴 :
1. Programming is Math.
2. Object-Oriented is based on Set Theory which has 2 weaknesses:
◇ Set has contradiction: The famous “Russell’s Barber Paradox”.
◇ Data Immutability for Concurrent Processing : OO can’t control the mutable state of objects, making debugging impossible.
Note: If the Identity is “0” or “Nothing”, then it is called Free Category.
1. “Cat” = Category of categories, is also a category.
2. Functor 函子 = Arrows between Categories.
3. Monoid = A Category with ONLY 1 Object.
Monoid (么半群) is a very powerful concept (used in Natural Language Processing) — basically it is a Group with No ‘I‘nverse (Mo‘No‘-‘I‘-d).
1. The Best Book on Category Theory : Lawvere et al, Cambridge (2009, 2nd Edition)
2. A humorous book on Category Theory by Dr. Eugenia Cheng (2016): (found in Singapore NLB Loan book #501.1 CHE)
Interesting Math education evolves since 19th century.
“Elementary Math from An Advanced Standpoint” (3 volumes) was proposed by German Göttingen School Felix Klein (19th century) :
1) Math teaching based on Function (graph) which is visible to students. This has influenced all Secondary school Math worldwide.
2) Geometry = Group
After WW1, French felt being behind the German school, the “Bourbaki” Ecole Normale Supérieure students rewrote all Math teachings – aka “Abstract Math” – based on the structure “Set” as the foundation to build further algebraic structures (group, ring, field, vector space…) and all Math.
After WW2, the American prof MacLane & Eilenburg summarised all these Bourbaki structures into one super-structure: “Category” (范畴) with a “morphism” (aka ‘relation’) between them.
Grothendieck proposed rewriting the Bourbaki Abstract Math from ‘Set’ to ‘Category’, but was rejected by the jealous Bourbaki founder Andre Weil.
Category is still a graduate syllabus Math, also called “Abstract Nonsense”! It is very useful in IT Functional Programming for “Artificial Intelligence” – the next revolution in “Our Human Brain” !
Prof S. Roman (Lecture 5)
Lesson 1.2 : Maps
Lesson 1.3 [Video] : Commute, Identity Morphism
Lesson 1.4 [Video] : Identity Law (Set Endomorphism), Associativity Law
Lesson 1.5 : [Video] Category of Sets (Concrete Category)
Number of Set Mappings: