GitHub - leifg/elixir-school: Lessons in the Fundamentals of Elixir

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

  1. Basics - Setup, basic types and operations.
  2. Collections - List, tuples, keywords, maps, dicts and functional combinators.
  3. Enum - A set of functions for working with collections.
  4. Pattern Matching - Match operator, matching, and the pin operator.
  5. Control Structures - The if/2, unless/2, case, and cond structures.
  6. Functions - Anonymous functions, named functions, and guards.
  7. Composition - Modules, module attributes, and structs.
  8. Mix - Build tool, package manager, and CLI tasks.
  9. Testing - ExTest and ExSpec.
  10. Concurrency - Processes, Agents, and Tasks.
  11. Concurrency cont - GenServer, GenEvent, and Supervisors.
  12. Distribution - Distribute work to remote nodes.
  13. Elixir + Erlang - Interoperability with Erlang.

Contributing

Contributions are welcomed and encouraged! Please see CONTRIBUTING.md.

License

Please see LICENSE for licensing details.