Lessons in the Fundamentals of Elixir, inspired by Twitter's Scala School.
About Elixir
"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
Lessons
- 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, andcondstructures. - Functions - Anonymous functions, named functions, and guards.
- 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.
Contributing
Contributions are welcomed and encouraged! Please see CONTRIBUTING.md.
License
Please see LICENSE for licensing details.