Lessons in the Fundamentals of Elixir, inspired by Twitter's Scala School.
This is actively being developed, your feedback is encouraged.
"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. - Composition - Modules, module attributes, and structs.
- Mix - Build tool, package manager, and CLI tasks.
- Testing - ExTest and ExSpec.
- Concurrency - Processes, Agents, and Tasks.
- Concurrency cont - GenServer, GenEvent, and Supervisors.
- Distribution - Distribute work to remote nodes.
- Elixir + Erlang - Interoperability with Erlang.
Contributions are welcomed and encouraged! Please see CONTRIBUTING.md.
Please see LICENSE for licensing details.