What’s the easiest way to learn functional programming?

People occasionally ask me, “What’s the easiest way to learn functional programming?” If you look at all of the books on the right side of this image, I can tell you that reading all of those books wasn’t an easy way to learn functional programming (FP):

IMHO there’s a much easier way to learn the FP basics: I’ve made almost 40% of my book, Functional Programming, Simplified, freely available.

The lessons in the free PDF you can find at that URL include:

  • The goals of the book
  • Rules for functional programming
  • The history of functional programming, and the meaning of terms like lambda and lambda calculus
  • The advantages of functional programming
  • The disadvantages of functional programming
  • The benefits of pure functions
  • Why the signatures of pure functions are so important
  • How FP is like writing Unix pipeline commands
  • How FP is like algebra
  • Eight lessons on recursion
  • A review of Scala’s case classes
  • Much more ...

If you read those free lessons and find them easy to read and learn, I think you’ll find that the rest of the book makes learning advanced functional programming concepts as easy to learn as possible as well. In the rest of the book I break each FP concept down into lessons that are typically less than 5-10 pages in length. By breaking complex topics down into small, bite-size nuggets, I think you’ll find that this book does indeed make functional programming as easy to learn as possible.

In summary, if you’re interested in learning functional programming, I encourage you to start with the free lessons in Functional Programming, Simplified. I hope this is a good way to make learning the functional programming basics as easy (and free) as possible.