Why did I love this book?
You may have got a taste of functional programming by learning some functional techniques in the language they use everyday, but if you want to deepen your knowledge, it's best to learn a functional language.
A multi-paradigm language like C# allows you to mix and match different techniques; a purely functional language, on the other hand, will force you to use the functional approach throughout—for example, by not allowing any state mutation at all.
The natural choice would be to learn Haskell, the functional language of reference and a lingua franca among functional programmers. Learning Haskell will allow you to take advantage of a wealth of literature on functional programming - books, blogs, talks, and so on - many of which have code samples in Haskell.
For this, I recommend you read Learn You a Haskell for Great Good by Miran Lipovaca. This book has been a favourite throughout the years, thanks to its conversational, no-nonsense approach, and the humorous sketches that lighten up the reading.
It assumes no prior knowledge of Haskell (the syntax can seem daunting at first, as it's so different from the popular C-derived languages), and gently guides you through the syntax and the ideas of functional programming. Another great feature of this book is that you can read it for free online although I do recommend you reward the author's work by buying a copy.
1 author picked Learn You A Haskell For Great Good as one of their favorite books, and they share why you should read it.
It's all in the name: Learn You a Haskell for Great Good! is a hilarious, illustrated guide to this complex functional language. Packed with the author's original artwork, pop culture references, and most importantly, useful example code, this book teaches functional fundamentals in a way you never thought possible. You'll start with the kid stuff: basic syntax, recursion, types and type classes. Then once you've got the basics down, the real black belt master-class begins: you'll learn to use applicative functors, monads, zippers, and all the other mythical Haskell constructs you've only read about in storybooks. As you work your…
- Coming soon!
- Coming soon!