The three principles of functional programming
By Alvin Alexander. Last updated: March 14 2018
The “three principles of functional programming,” from this tweet:
1. Orthogonal composability
2. Maximum polymorphism
3. Maximum deferment
The “three pillars of functional programming,” from Functional and Reactive Domain Modeling:
1. Referential transparency
2. Substitution model
3. Equational reasoning
When I learned OOP I saw that it was based on several principles that everyone agrees upon. When I started learning FP (and later took two years to write Functional Programming, Simplified) I was surprised there wasn’t a single accepted definition of functional programming. I ran across the principles/pillars in the last two days and was reminded of that again.