~ functionalfluency.dev
Functional Fluency
study FP · with Clojure
Two paths, one site: learn Clojure the language, or functional programming the discipline — with runnable Clojure on every page via SCI.
→ clojure backend
Building Clojure services?
Curated path through patterns and theory for Ring/Reitit HTTP backends — functional core, error boundaries, pipelines, state.
deepening path →$ clojure
the language
- AClojure basics14 topics
Lisp syntax, persistent collections, seq, destructuring, threading macros, recur, REPL workflow, namespaces, flow control, nil, equality, strings & regex.
- BClojure advanced11 topics
Macros, protocols, transducers, state, STM, core.async, dynamic vars, futures/promises, spec, performance hints.
- CClojure ecosystem14 topics
Data-oriented programming, core.logic, Datalog, Malli, test.check, core.typed, JVM interop, clojure.test, web stack, component systems, ClojureScript, Babashka.
- DClojure in practice7 topics
Building real systems: modeling domain entities as values, processing pipelines, composing applications from components. Inspired by 'Clojure Applied' (Vandgrift & Miller, Pragmatic Bookshelf).
$ functional programming
the discipline
- EFP foundations8 topics
The ideas every FP language shares: declarative thinking, first-class functions, immutability, purity, composition, closures, laziness, core combinators.
- FDeep theory13 topics
λ-calculus, SKI, evaluation strategies, Hindley-Milner, Curry-Howard, type systems, polymorphism, algebraic hierarchy, monad transformers, effects, continuations, optics, recursion schemes.
- GConcurrency models5 topics
CSP, π-calculus, actors, CRDTs, event sourcing, FRP.
- HNeighboring paradigms6 topics
APL/J, parser combinators, autodiff, probabilistic programming, term rewriting, proof assistants.
- IApplied patterns7 topics
Imperative-to-functional refactoring, functional core/imperative shell, railway-oriented programming, illegal states, the expression problem.