Functional programming has been a popular topic of discussion in the software development industry lately. More and more developers are realizing the benefits of writing code in a functional style, from web development to scientific programming. We have compiled a list of some of the best functional programming books to help you learn functional programming. We will be updating this article as better or more up-to-date books become available on the topic.
Structure and Interpretation of Computer Programs
Structure and Interpretation of Computer Programs (SICP), is a classical computer science textbook. It goes beyond just functional programming, but reading it should give you a much stronger understanding of functional programming, as well as other programming styles. The book goes into topics such as abstractions, modular programming, algorithms, recursion, interpreters, and more. The book uses the Scheme programming language (a dialect of Lisp), which can be used for functional programming.
There is also a free online video course derived from the book, available on YouTube. This is an excellent video series I recommend you check out, even if you’re not interested in reading the book.
Functional Programming in C#: How to write better C# code
The C# community has lately embraced functional programming. Of course, C# is not fundamentally a functional programming language. However, that doesn’t mean you can’t benefit from coding in a more functional style. This is what Functional Programming in C# will teach you. It is going to teach you the fundamentals of functional programming, and then how to apply that to write better C# code.
The book covers areas such as code structure, error handling, asynchronous programming, and more. If you already have some experience with C#, this is one of the best functional programming books for you.
Programming in Haskell
Haskell is a fairly popular and well established purely functional programming language. Programming in Haskell is an introduction to the Haskell programming language. This makes it a great programming language to learn if you are trying to understand functional programming. Haskell will force you to think in a functional style. This can be helpful if you are stuck thinking in terms of imperative programming. Haskell is one of the few functional programming languages that is actually used in the software development industry (read more on the Haskell Wiki).
Additionally, the book does not assume any previous programming experience. The book is accessible to beginners as well as those more familiar with programming. It should serve you as a great introduction to both Haskell and functional programming in general.
Purely Functional Data Structures
If you are looking for a more theoretical approach to functional programming, you should check out Purely Functional Data Structures by Chris Okasaki. This book explores data structures and their implementation in a functional programming style. The book uses Standard ML and Haskell for the code examples. However, you should be able to follow along with any functional programming language.
This is one of the best functional programming books if you are looking for a deeper and more theoretical understanding. However, it assumes you have experience with algorithms and data structures. Because of this, I would only recommend it to those who already have a strong foundation in computer science.