Advanced Functional Programming with Elixir

Model Behavior, Manage Complexity, and Maximize Maintainability

by: Joseph Koski

Published 2026-01-15
Internal code jkelixir
Print status In Print
Pages 250
User level Intermediate
Keywords elixir;functional programming;functional programming with elixir;domain-driven design;monoids;monads;composing logic;modeling data;software modeling;composing software patterns;BEAM;erlang;real-world elixir;production-ready elixir;
Related titles

Learn Functional Programming with Elixir
Programming Elixir ≥ 1.6
From Ruby to Elixir: Unleash the Full Potential of Functional Programming
Programming Phoenix 1.4
Designing Elixir Systems with OTP

Books that would be a good follow-up:

Domain Modeling Made Functional (one of my favorites)
Functional Programming: A PragPub Anthology
Programming Haskell
Functional Design Patterns for Expressive Programs
Functional Web Development with Elixir, OTP, and Phoenix

ISBN 9798888651797
Other ISBN
BISACs COM051000
COM062000
COM062000

Highlight

Combine advanced functional programming concepts with production-ready Elixir and proven domain-driven design techniques to write cleaner, more thoughtful software. You’ll explore foundational ideas like equality, ordering, predicates, monoids, and monads—then go beyond syntax as you develop intuition for composing logic, modeling behavior, and growing systems. With a focus on maintainable, declarative code over theory, you’ll gain practical, composable patterns you can apply right away.

Description

Get ready to manage crowds, adjust priorities, and keep everyone safe in FunPark, a place that never sits still. Your job is to model that complexity and build the systems that keep everything running smoothly, even as the business team is still figuring out what they want and the experts keep rewriting the rules.

Using core abstractions—equality, ordering, predicates, monoids, and monads—you’ll break problems into small, composable pieces that are both well-behaved and easy to combine. Rather than getting bogged down in theory or formal proofs, you’ll dive into real-world Elixir—using protocols, structs, and pattern matching to express shared behavior across your domain. Along the way, you’ll build the vocabulary and mental models you need to organize complex logic, supported by a production-ready open-source library you can use, extend, and explore in your own projects.

Whether you’re an Elixir developer mastering functional programming or a functional programmer exploring Elixir, you’ll discover how to write code that’s easier to reason about—and create systems that stay understandable, even as they grow.

Contents and Extracts