In functional programming, at the heart of input/output, optionality, state, logic, probability, and much more lies an extraordinarily powerful abstraction called a monad. Although monads are the key to unlocking the practic...

Buy Now From Amazon

In functional programming, at the heart of input/output, optionality, state, logic, probability, and much more lies an extraordinarily powerful abstraction called a monad. Although monads are the key to unlocking the practical power of functional programming, many developers find them confusing and esoteric, and struggle with functional programming because they do not understand or see the applications of monads. Now acclaimed speaker, functional programmer, and author Alejandro Serrano Mena has tackled the subject of monads in the world's first accessible, methodical, and encyclopedic book on the subject, written from the perspective of real-world programming. Serrano Mena's work goes beyond definitions and laws to ensure readers master not just the concept of monads, but all the ways different monads can be used to solve everyday problems. Developers from many different backgrounds can follow along with code examples in Haskell and Scala (and some in F#, Idris, and C#), and a focus on simple examples. The book contains exercises that train developers to develop practical skills, and a thorough explanation of adjacent concepts, including functors, applicative functors, monad transformers, final tagless, free monads, extensible effects, and the origins of monads in category theory. "Alejandro has done an amazing job covering monads in a depth and breadth I've never seen anywhere else. This book will become known as the Bible of Monads!" - John A. De Goes"

Similar Products

Practical Haskell: A Real World Guide to ProgrammingThe Little Typer (The MIT Press)An Invitation to Applied Category Theory: Seven Sketches in CompositionalityDaily Coding Problem: Get exceptionally good at coding interviews by solving one problem every dayAlgorithms Illuminated (Part 3): Greedy Algorithms and Dynamic ProgrammingUltralearning: Master Hard Skills, Outsmart the Competition, and Accelerate Your CareerA Programmer's Introduction to MathematicsThe Rust Programming Language