amrza / elixir-school

Lessons in the Fundamentals of Elixir

Home Page:http://elixirschool.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Elixir School License

Lessons in the Fundamentals of Elixir, inspired by Twitter's Scala School.

Your feedback and participation is encouraged, see Contributing for more details.

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

  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, dependency manager, and CLI tasks.
  9. Testing - ExTest and testing best practices.

Advanced

  1. Concurrency - Processes, Agents, and Tasks.
  2. Concurrency cont - GenServer, GenEvent, and Supervisors.
  3. Distribution - Distribute work to remote nodes.
  4. Elixir + Erlang - Interoperability with Erlang.
  5. Macros - Defining functionality with quote and unquote.

Specific Tools

  1. Plug - Composable modules for web applications.
  2. Ecto - Database wrapper and query language.

About

Lessons in the Fundamentals of Elixir

http://elixirschool.com

License:Apache License 2.0