Lessons in the Fundamentals of Elixir, inspired by Twitter's Scala School.
Your feedback and participation is encouraged, see Contributing for more details.
"Elixir is a dynamic, functional language designed for building scalable and maintainable applications." — elixir-lang.org
Elixir leverages the battle tested ErlangVM to build distributed and fault-tolerant systems with low-latency out of the box.
Features:
- Scalable
- Fault-tolerant
- Functional Programming
- Extensible
- Basics - Setup, basic types and operations.
- Collections - List, tuples, keywords, maps, dicts and functional combinators.
- Enum - A set of functions for working with collections.
- Pattern Matching - Match operator, matching, and the pin operator.
- Control Structures - The
if/2
,unless/2
,case
, andcond
structures. - Functions - Anonymous functions, named functions, and guards.
- Composition - Modules, module attributes, and structs.
- Mix - Build tool, dependency manager, and CLI tasks.
- Testing - ExTest and testing best practices.
- Concurrency - Processes, Agents, and Tasks.
- Concurrency cont - GenServer, GenEvent, and Supervisors.
- Distribution - Distribute work to remote nodes.
- Elixir + Erlang - Interoperability with Erlang.
- Macros - Defining functionality with
quote
andunquote
.