Intro to Functional Programming

Intro to Functional Programming is a course built for developers who understand the importance of functional programming concepts, and want to learn about how they can implement functional styles in their code. Recursion, the avoidance of side-effects, and purely functional data structures are some of the ideas covered in this five-module course.

Why Learn Functional Programming?

  1. Functional programming will improve all of your programming. Concepts of FP apply within procedural code as well.
  2. Functional programming is growing. React Hooks are a great example of this trend.
  3. Functional code has less side-effects and is easier to debug. Because pure functions are completely deterministic and don’t rely on program state, they are easier to test.
  4. Concurrency gets simpler. Without shared state, concurrent programs become much easier to work with.

What’s In The Course?

We start with a look at functional styles of programming in JavaScript. The JavaScript community has been pushing for more pure functions, recursion, and use of FP in general, so we take some time to practice with practical examples. In the next two modules we continue to work with JavaScript but look at how we can better avoid side-effects in our code, and work with functional versions of some popular data structures.

In the last two modules we explore purely functional programming in a new language, PureScript. Using PureScript, we are able to take advantage of the language-level checks and compiler errors that a purely functional language provides. We explore the possibilities of higher order and first-class functions, and familiarize ourselves with the basics of function currying.

Modules

1 – Recursion

2 – Pure Functions

3 – Data Structures

4 – PureScript

5 – Higher Order Functions