# \#book-advanced-functional-programming-with-elixir

**URL:** https://forum.devtalk.com/tag/book-advanced-functional-programming-with-elixir/3275.md

[Latest](https://forum.devtalk.com/latest.md) · [Categories](https://forum.devtalk.com/categories.md) · [Tags](https://forum.devtalk.com/tags.md)

---

## [Advanced Functional Programming with Elixir: Problem Running Code Example](https://forum.devtalk.com/t/advanced-functional-programming-with-elixir-problem-running-code-example/216820)

<div class="topic-metadata">

**Author:** [@imeraj](https://forum.devtalk.com/u/imeraj)\
**Replies:** 1\
**Last updated:** [12 July 2026 16:09 UTC](https://forum.devtalk.com/t/advanced-functional-programming-with-elixir-problem-running-code-example/216820 "2026-07-12T16:09:22Z")

</div>

I am reading this book with great enthusiasm. So far the code works great but while running the examples in Predicates That Span Contexts section I am encountering some function arity errors as below - iex(13)\> FunPark…

---

## [Advanced Functional Programming with Elixir: What about Postgres?](https://forum.devtalk.com/t/advanced-functional-programming-with-elixir-what-about-postgres/238136)

<div class="topic-metadata">

**Author:** [@zorn](https://forum.devtalk.com/u/zorn)\
**Replies:** 0\
**Last updated:** [18 March 2026 17:35 UTC](https://forum.devtalk.com/t/advanced-functional-programming-with-elixir-what-about-postgres/238136 "2026-03-18T17:35:30Z")

</div>

I am reading this book as part of a book club. Just finished chapter 4, and I think the ending section on complexity and why we are doing this was fire. One topic that came up during book club discussions is that, while…

---

## [Advanced Functional Programming with Elixir: Compilation error in file lib/fun\_park/ride/fast\_lane.ex:73:32:](https://forum.devtalk.com/t/advanced-functional-programming-with-elixir-compilation-error-in-file-lib-fun-park-ride-fast-lane-ex32/235237)

<div class="topic-metadata">

**Author:** [@esambo](https://forum.devtalk.com/u/esambo)\
**Replies:** 0\
**Last updated:** [24 February 2026 00:56 UTC](https://forum.devtalk.com/t/advanced-functional-programming-with-elixir-compilation-error-in-file-lib-fun-park-ride-fast-lane-ex32/235237 "2026-02-24T00:56:23Z")

</div>

Context I downloaded the books Source code (zip file), extracted it, installed the dependencies (mix deps.get) and then compiled it (mix compile) Error I was then presented with the following error: == Compilation erro…

---

## [Funx: Free Your Predicates](https://forum.devtalk.com/t/funx-free-your-predicates/232416)

<div class="topic-metadata">

**Author:** [@JKWA](https://forum.devtalk.com/u/JKWA)\
**Replies:** 0\
**Last updated:** [2 February 2026 18:48 UTC](https://forum.devtalk.com/t/funx-free-your-predicates/232416 "2026-02-02T18:48:35Z")

</div>

Avoid burying your domain rules in control flow. Includes a Livebook so you can try it yourself.

---

## [Funx Eq: What does “same” mean in your domain?](https://forum.devtalk.com/t/funx-eq-what-does-same-mean-in-your-domain/231606)

<div class="topic-metadata">

**Author:** [@JKWA](https://forum.devtalk.com/u/JKWA)\
**Replies:** 0\
**Last updated:** [27 January 2026 18:42 UTC](https://forum.devtalk.com/t/funx-eq-what-does-same-mean-in-your-domain/231606 "2026-01-27T18:42:19Z")

</div>

How to model equality as a domain rule. Includes a Livebook so you can try it yourself.

---

## [Optics in Funx: optics don’t live alone. Lens, Prism, Traversal, and Iso work together](https://forum.devtalk.com/t/optics-in-funx-optics-don-t-live-alone-lens-prism-traversal-and-iso-work-together/230933)

<div class="topic-metadata">

**Author:** [@JKWA](https://forum.devtalk.com/u/JKWA)\
**Replies:** 0\
**Last updated:** [21 January 2026 19:56 UTC](https://forum.devtalk.com/t/optics-in-funx-optics-don-t-live-alone-lens-prism-traversal-and-iso-work-together/230933 "2026-01-21T19:56:16Z")

</div>

Connecting the pieces together. Includes a Livebook

---

## [Advanced Functional Programming with Elixir: Slightly misleading contramap exercise (Page 36)](https://forum.devtalk.com/t/advanced-functional-programming-with-elixir-slightly-misleading-contramap-exercise-page-36/230537)

<div class="topic-metadata">

**Author:** [@octowombat](https://forum.devtalk.com/u/octowombat)\
**Replies:** 0\
**Last updated:** [18 January 2026 16:41 UTC](https://forum.devtalk.com/t/advanced-functional-programming-with-elixir-slightly-misleading-contramap-exercise-page-36/230537 "2026-01-18T16:41:23Z")

</div>

The exercise states “Create a contramap/1 that normalizes strings before comparing them—make sure they’re trimmed and use the same case.” However the existing contramap/1 function is sufficient but the author means c…

---

## [Optics in Funx](https://forum.devtalk.com/t/optics-in-funx/230055)

<div class="topic-metadata">

**Author:** [@JKWA](https://forum.devtalk.com/u/JKWA)\
**Replies:** 0\
**Last updated:** [14 January 2026 22:09 UTC](https://forum.devtalk.com/t/optics-in-funx/230055 "2026-01-14T22:09:30Z")

</div>

Same thing, different representations. That’s an Iso. Includes a Livebook

---

## [Funx: Adding the Optic Traversal](https://forum.devtalk.com/t/funx-adding-the-optic-traversal/228796)

<div class="topic-metadata">

**Author:** [@JKWA](https://forum.devtalk.com/u/JKWA)\
**Replies:** 0\
**Last updated:** [5 January 2026 17:37 UTC](https://forum.devtalk.com/t/funx-adding-the-optic-traversal/228796 "2026-01-05T17:37:27Z")

</div>

More optics in Funx: when you need multiple foci, use a traversal. Includes a Livebook livebook funx

---

## [Funx Optics: Declare your order](https://forum.devtalk.com/t/funx-optics-declare-your-order/228035)

<div class="topic-metadata">

**Author:** [@JKWA](https://forum.devtalk.com/u/JKWA)\
**Replies:** 0\
**Last updated:** [29 December 2025 18:43 UTC](https://forum.devtalk.com/t/funx-optics-declare-your-order/228035 "2025-12-29T18:43:45Z")

</div>

We’ve seen how Lens and Prism let us extract values from nested data. Now we’ll use those same projections to build layered lexicographic sorts, one dimension at a time. elixirlang

---

## [More optics in Funx: name your shareable boundaries with prisms](https://forum.devtalk.com/t/more-optics-in-funx-name-your-shareable-boundaries-with-prisms/227314)

<div class="topic-metadata">

**Author:** [@JKWA](https://forum.devtalk.com/u/JKWA)\
**Replies:** 0\
**Last updated:** [22 December 2025 17:51 UTC](https://forum.devtalk.com/t/more-optics-in-funx-name-your-shareable-boundaries-with-prisms/227314 "2025-12-22T17:51:44Z")

</div>

Includes a Livebook.

---

## [Here’s why lawful lenses matter (even in Elixir):](https://forum.devtalk.com/t/here-s-why-lawful-lenses-matter-even-in-elixir/226608)

<div class="topic-metadata">

**Author:** [@JKWA](https://forum.devtalk.com/u/JKWA)\
**Replies:** 0\
**Last updated:** [16 December 2025 17:49 UTC](https://forum.devtalk.com/t/here-s-why-lawful-lenses-matter-even-in-elixir/226608 "2025-12-16T17:49:14Z")

</div>

Couldn’t fit optics in my book, but I can build them into Funx. funx

---

## [Adding a context-aware tap to Funx](https://forum.devtalk.com/t/adding-a-context-aware-tap-to-funx/225669)

<div class="topic-metadata">

**Author:** [@JKWA](https://forum.devtalk.com/u/JKWA)\
**Replies:** 0\
**Last updated:** [8 December 2025 23:00 UTC](https://forum.devtalk.com/t/adding-a-context-aware-tap-to-funx/225669 "2025-12-08T23:00:15Z")

</div>

New blog post: After building out the Either DSL, I realized Funx needed a context-aware tap. elixirlang

---

## [Lifting a few of Ash’s DSL ideas (or stealing them outright) to build an Either DSL in Funx](https://forum.devtalk.com/t/lifting-a-few-of-ash-s-dsl-ideas-or-stealing-them-outright-to-build-an-either-dsl-in-funx/224915)

<div class="topic-metadata">

**Author:** [@JKWA](https://forum.devtalk.com/u/JKWA)\
**Replies:** 0\
**Last updated:** [2 December 2025 21:10 UTC](https://forum.devtalk.com/t/lifting-a-few-of-ash-s-dsl-ideas-or-stealing-them-outright-to-build-an-either-dsl-in-funx/224915 "2025-12-02T21:10:10Z")

</div>

New post in my Ash Framework series.

---

## [Ash Framework Calculations](https://forum.devtalk.com/t/ash-framework-calculations/224017)

<div class="topic-metadata">

**Author:** [@JKWA](https://forum.devtalk.com/u/JKWA)\
**Replies:** 0\
**Last updated:** [25 November 2025 21:24 UTC](https://forum.devtalk.com/t/ash-framework-calculations/224017 "2025-11-25T21:24:26Z")

</div>

A new post in my series on the Ash Framework. This one looks at calculations and includes functional programming strategies for managing uncertainty.

---

## [Ash Framework: Diving into validation](https://forum.devtalk.com/t/ash-framework-diving-into-validation/223183)

<div class="topic-metadata">

**Author:** [@JKWA](https://forum.devtalk.com/u/JKWA)\
**Replies:** 0\
**Last updated:** [18 November 2025 21:12 UTC](https://forum.devtalk.com/t/ash-framework-diving-into-validation/223183 "2025-11-18T21:12:16Z")

</div>

one explores the underlying mechanics of Ash validation and where Funx can help when checks need more structure or concurrency.

---

## [Ash Framework. Understanding actions from a functional programming perspective](https://forum.devtalk.com/t/ash-framework-understanding-actions-from-a-functional-programming-perspective/222403)

<div class="topic-metadata">

**Author:** [@JKWA](https://forum.devtalk.com/u/JKWA)\
**Replies:** 0\
**Last updated:** [12 November 2025 20:01 UTC](https://forum.devtalk.com/t/ash-framework-understanding-actions-from-a-functional-programming-perspective/222403 "2025-11-12T20:01:23Z")

</div>

Another in my series on the Ash Framework. Understanding actions from a functional programming perspective.

---

## [Advanced Functional Programming with Elixir: equality check should reside in a value object](https://forum.devtalk.com/t/advanced-functional-programming-with-elixir-equality-check-should-reside-in-a-value-object/220262)

<div class="topic-metadata">

**Author:** [@lessless](https://forum.devtalk.com/u/lessless)\
**Replies:** 0\
**Last updated:** [27 October 2025 00:35 UTC](https://forum.devtalk.com/t/advanced-functional-programming-with-elixir-equality-check-should-reside-in-a-value-object/220262 "2025-10-27T00:35:56Z")

</div>

Title: Advanced Functional Programming with Elixir (page 21) Example: Programming Flutter: ‘pub get’ command not working (page 15) Hi, I feel that in a large codebase (i.e. outside of a textbook) equality check should …

---

## [Why does authorization logic get messy?](https://forum.devtalk.com/t/why-does-authorization-logic-get-messy/218719)

<div class="topic-metadata">

**Author:** [@JKWA](https://forum.devtalk.com/u/JKWA)\
**Replies:** 0\
**Last updated:** [14 October 2025 19:10 UTC](https://forum.devtalk.com/t/why-does-authorization-logic-get-messy/218719 "2025-10-14T19:10:42Z")

</div>

Back from vacation and I thought I’d add to my series on the Ash Framework book.

---

## [Advanced Functional Programming with Elixir (PragProg)](https://forum.devtalk.com/t/advanced-functional-programming-with-elixir-pragprog/211312)

<div class="topic-metadata">

**Author:** [@PragmaticBookshelf](https://forum.devtalk.com/u/PragmaticBookshelf)\
**Replies:** 22\
**Last updated:** [6 October 2025 09:04 UTC](https://forum.devtalk.com/t/advanced-functional-programming-with-elixir-pragprog/211312 "2025-10-06T09:04:44Z")

</div>

Use advanced functional programming principles, practical Domain-Driven Design techniques, and production-ready Elixir code to build scalable, complex systems from simple, reusable components. Joseph Koski @JKWA Ser…

---

## [Advanced Functional Programming with Elixir: B4.0](https://forum.devtalk.com/t/advanced-functional-programming-with-elixir-b4-0/216694)

<div class="topic-metadata">

**Author:** [@jvelilla](https://forum.devtalk.com/u/jvelilla)\
**Replies:** 0\
**Last updated:** [30 September 2025 00:59 UTC](https://forum.devtalk.com/t/advanced-functional-programming-with-elixir-b4-0/216694 "2025-09-30T00:59:32Z")

</div>

Chapter One makes a reference to DDD to use factories In Domain-Driven Design, a factory creates domain objects in a consistent way, keeping their internal structure loosely coupled from the rest of the system. The Fu…

---

## [An early reader had a suggestion](https://forum.devtalk.com/t/an-early-reader-had-a-suggestion/216130)

<div class="topic-metadata">

**Author:** [@JKWA](https://forum.devtalk.com/u/JKWA)\
**Replies:** 0\
**Last updated:** [25 September 2025 18:16 UTC](https://forum.devtalk.com/t/an-early-reader-had-a-suggestion/216130 "2025-09-25T18:16:43Z")

</div>

Connect functional programming patterns to the libraries Elixir devs already use. It’s a good idea, but I didn’t have space in the book. funx

---

## [Want to tinker?](https://forum.devtalk.com/t/want-to-tinker/215222)

<div class="topic-metadata">

**Author:** [@JKWA](https://forum.devtalk.com/u/JKWA)\
**Replies:** 0\
**Last updated:** [18 September 2025 20:44 UTC](https://forum.devtalk.com/t/want-to-tinker/215222 "2025-09-18T20:44:04Z")

</div>

Can an LLM Tutor? Sharing to see what folks think. funx

---

## [Another deleted scene from my book](https://forum.devtalk.com/t/another-deleted-scene-from-my-book/215080)

<div class="topic-metadata">

**Author:** [@JKWA](https://forum.devtalk.com/u/JKWA)\
**Replies:** 0\
**Last updated:** [17 September 2025 21:52 UTC](https://forum.devtalk.com/t/another-deleted-scene-from-my-book/215080 "2025-09-17T21:52:37Z")

</div>

There are many ways to solve equality: duck typing, injection, protocol dispatch. Here’s why Funx uses the one it does: funx

---

## [Livebook Examples from Advanced Functional Programming with Elixir](https://forum.devtalk.com/t/livebook-examples-from-advanced-functional-programming-with-elixir/214248)

<div class="topic-metadata">

**Author:** [@JKWA](https://forum.devtalk.com/u/JKWA)\
**Replies:** 3\
**Last updated:** [11 September 2025 13:53 UTC](https://forum.devtalk.com/t/livebook-examples-from-advanced-functional-programming-with-elixir/214248 "2025-09-11T13:53:51Z")

</div>

I just finished putting together interactive Livebook notebooks for every chapter of Advanced Functional Programming with Elixir. You can now run all the examples in your browser. Or like me, spin them up locally with D…

---

## [Advanced Functional Programming with Elixir: 1 struct per bounded context](https://forum.devtalk.com/t/advanced-functional-programming-with-elixir-1-struct-per-bounded-context/212921)

<div class="topic-metadata">

**Author:** [@Chrichton](https://forum.devtalk.com/u/Chrichton)\
**Replies:** 1\
**Last updated:** [31 August 2025 18:33 UTC](https://forum.devtalk.com/t/advanced-functional-programming-with-elixir-1-struct-per-bounded-context/212921 "2025-08-31T18:33:53Z")

</div>

I read chapters 1-3 so far. I noted that the FunPark-Project has exactly one struct (domain-object) per bounded context. I would be interested in a discussion about how to decide which domain-objects belong to which bo…

---

## [Advanced Functional Programming with Elixir: persistence abstractions](https://forum.devtalk.com/t/advanced-functional-programming-with-elixir-persistence-abstractions/212943)

<div class="topic-metadata">

**Author:** [@Chrichton](https://forum.devtalk.com/u/Chrichton)\
**Replies:** 0\
**Last updated:** [30 August 2025 06:08 UTC](https://forum.devtalk.com/t/advanced-functional-programming-with-elixir-persistence-abstractions/212943 "2025-08-30T06:08:52Z")

</div>

In your great book you use structs as abstraction for your domain objects. I understand, that you don’t want any dependencies. But there are already abstractions which you can use in elixir. Ecto Ash-Framework, where…

---

## [What’s the point of a polymorphic eq?](https://forum.devtalk.com/t/what-s-the-point-of-a-polymorphic-eq/212578)

<div class="topic-metadata">

**Author:** [@JKWA](https://forum.devtalk.com/u/JKWA)\
**Replies:** 0\
**Last updated:** [27 August 2025 22:20 UTC](https://forum.devtalk.com/t/what-s-the-point-of-a-polymorphic-eq/212578 "2025-08-27T22:20:00Z")

</div>

This post is a follow-up to some thoughtful comments I received on an earlier discussion. It digs deeper into polymorphism, a theme I also cover in my book Advanced Functional Programming with Elixir.

---

## [Polymorphism and Structs in Elixir](https://forum.devtalk.com/t/polymorphism-and-structs-in-elixir/212163)

<div class="topic-metadata">

**Author:** [@JKWA](https://forum.devtalk.com/u/JKWA)\
**Replies:** 1\
**Last updated:** [25 August 2025 14:40 UTC](https://forum.devtalk.com/t/polymorphism-and-structs-in-elixir/212163 "2025-08-25T14:40:56Z")

</div>

Another in my series of trimmings from Advanced Functional Programming with Elixir . This one explores how polymorphism relies on tags and how Elixir’s structs make that pattern safer and more robust.

---

## [Polymorphism in Elixir](https://forum.devtalk.com/t/polymorphism-in-elixir/211793)

<div class="topic-metadata">

**Author:** [@JKWA](https://forum.devtalk.com/u/JKWA)\
**Replies:** 0\
**Last updated:** [22 August 2025 04:18 UTC](https://forum.devtalk.com/t/polymorphism-in-elixir/211793 "2025-08-22T04:18:19Z")

</div>

I didn’t have room for this in my book, Advanced Functional Programming with Elixir , but I still thought it was worth sharing on my blog.

[Next page](https://forum.devtalk.com/tag/book-advanced-functional-programming-with-elixir/3275.md?match_all_tags=true&page=1&tags%5B%5D=book-advanced-functional-programming-with-elixir)
