Table of Contents
- Introducing Elixir: Thinking Functionally
- Elixir Basics: Foundational Steps Towards Functional Programming
- Modules and Functions: Creating Functional Building Blocks
- Collections, Recursion, and (Stream) Processing
- Control Flow: Occasionally You Need to Branch
- Concurrent Programming: Using Processes to Conquer Concurrency
- OTP: A Poor Name for a Rich Framework
- Distributed Elixir: Taking Concurrency to the Next Node
- Metaprogramming: Doing More with Less

