jonnifyelixir

A jonnify course

Functional Programming
in Elixir

A bridge from the algebra you already know to real-time systems on the BEAM.

Seven chapters, 59 modules, plus an optional history chapter. Every idea is defined precisely, paired with its Elixir form, and shown — not only described. The code is idiomatic and runnable; the diagrams compute the real thing.

λ ∘ |>

How to read this

This course makes one claim and then earns it: functional programming is the algebra of functions, and Elixir is a place to run that algebra at scale. Each chapter takes an idea you already trust from mathematics and shows the line that connects it to working code.

The shape is deliberate. Algebra establishes the mindset; functional programming studies the tools on their own terms; the Elixir language gives them a syntax; algorithms put them under load; pragmatic engineering ships them; and Phoenix carries them onto the web and into real-time. Each chapter reuses the one before it, so nothing arrives without its foundation.

Pick a chapter from the arc below to see what it covers and what it stands on. The full module directory follows.

The arc · select a chapter

1 Algebra 2 Functional 3 Language 4 Algorithms 5 Pragmatic 6 Phoenix 7 Deploy start live
Algebra

The functional mindset, straight from the math you already know.

F1 · chapter 9 modules Starts from the algebra you already know.

The course is one curve, not eight disconnected topics. Read it in order and each chapter is a consequence of the last.

One idea, early: composition

The thread that runs through every chapter is composition. In algebra, applying f and then g is the single function g∘f. In Elixir, that same act has a syntax — the pipe |> — which reads left to right in the order the work happens.

Three pure functions are wired below: double maps x to 2x, increment adds one, and square maps x to x². Set the input, toggle which functions take part, and watch the pipeline and its result rebuild.

The pipe · build a pipeline

3
3
|> double()    # => 6
|> increment() # => 7
|> square()    # => 49
3 ▷ 6 ▷ 7 ▷ 49  = 49

A pipeline reads left to right: x |> f |> g is g(f(x)). Turn every function off and the pipeline is the identity — it returns its input untouched. F1.03 makes f∘g and its associativity precise.

The map

The full course, chapter by chapter. Cards that link are ready to read; the rest are specified and on the way. The .09 of every chapter is a hands-on, richly visual lab.

live chapter front door built lesson ready planned drafted, on the way soon specified
F0

History

Open chapter →

Where this came from — the languages, the runtimes, and the BEAM.

F1

Algebra

Open chapter →

The functional mindset, straight from the math you already know.

F2

Functional Programming

Open chapter →

Pure functions, immutability, and higher-order functions on their own terms.

F3

The Elixir Language

Open chapter →

Syntax, pipelines, pattern matching, and structs on the BEAM.

F4

Algorithms & Data Structures

Open chapter →

Classical and advanced problems, from lists to branded CHAMP tries.

F5

Pragmatic Programming

Open chapter →

Real-world engineering: structure, testing, telemetry, releases.

F6

Phoenix Framework

Open chapter →

Web applications on Elixir, and the road into real-time LiveView.

F7

Deploy to Fly

Open chapter →

Take the Portal live on Fly.io — the four stacked, silent-until-boot deploy gotchas, mastered one module at a time.