Learning the basics
It’s relatively short (200 pages) but has a lot of useful information.
Brian also gave a very interesting talk at the Fluent Conference. He blasted through slides presenting functional patterns for the non-mathematician. If you decide to watch it you will be able to discover the gist of the aforementioned book.
I already mentioned Underscore.js, which is actually the first library that tried to promote functional concepts to the wider audience. Brian Lonsdorf in one of his talks explains how it could be done even better.
These days Lodash, which fully implements the Underscore’s API, got much more popular and it is used more willingly in commercial applications. It has a special lodash/fp build which fixes the issues discussed in the above-mentioned presentation. It was achieved by using auto-curried, data last functions with fixed number of params. There is also the other well known alternative called Ramda, which seems to be very popular amongst functional programming enthusiasts.
Facebook is one of the leading companies willing to apply FP paradigms into their products. They started with React and this one simple rule:
All React components must act like pure functions with respect to their props.
Finally, I want to recommend a very interesting talk recorded at React Europe conference. Previously mentioned Andrew Clark promotes the idea of building React components as a composition of higher order functions using examples from Recompose utility belt.
If you are still reading, it means you really want to master this topic.
When you build real world applications, you are not always on the happy path. Scott Wlaschin in his talk demonstrates a common approach to this challenge within a functional paradigm using a Railway Oriented Programming analogy and F# examples.
You can also find out more about functional programming fundamentals learning Haskell. This is pure functional language so it is entirely appropriate for learning the essential ingredients. As a next step I’m planning to take the online C9 Lectures held by Dr. Erik Meijer who is considered as functional language purist and high priest of the lambda calculus.
This article was reviewed by Fabiana Simões.