An archive of the best resources surrounding the functional programming paradigm.
Object Orientation makes code understandable by encapsulating moving parts. Functional programming makes code understandable by minimizing moving parts. ~ Michael Feathers
Functional programming is making a strong comeback, and with it: a massive wave of internet buzz. Someone needs to sort the good from the bad, and that is what I will attempt to do here.
My focus is on the functional paradigm in the context of Javascript, but discussion and highlight of other Functional languages are welcome for the purpose of evaluation, comparison and education.
Note: This is very much a work in progress! Pull Requests welcome!
F
makes a function call as its final action. At that point F
will do absolutely no more work: it passes the ball to whatever function is being called and vanishes from the game. source
Created by Mattias P Johansson twitter | youtube
Certain aspects of the javascript language make it tricky to harness the full power of a fully-functional language, namely:
const
keyword is available in ES6, where variables declared like const foo = 123;
are immutable, but objects declared with const
behave differently (see the next gotcha).const
are mutable. The idea here is that the pointer reference to the object is immutable when your object is declared with const
, but the object itself is mutable.Worthwhile publications on FP in languages other than Javascript.
These are articles and resources that were recommended for one reason or another, but I haven't actually reviewed them to determine their status.
Below are examples of Open Source projects using the functional paradigm. Pull requests are welcome for contributions!
Other curated lists of Awesome FP Knowledge