Functional Programming

Note: This page is new / WIP.

In the simplest sense, functional programming is a paradigm in which functions are the main building block (instead of objects or procedures).

There are a lot of debates out there about what really makes a language a functional language, but you don't really need much to get the most important benefits of FP.

This will be an index page for the FP-related topics. Each page/chapter is standalone, but they are also interconnected into the bigger guide.

Note: I'm going to mostly use JS as an example language, simply because is the language most people today know (and it has support for first-class functions).


  1. Pure functions
  2. Referential transparency
  3. Functional core, imperative shell

Comments, suggestions and questions and are always welcome.