Elixir is a functional language that crosses many boundaries. With a syntax borrowing heavily from Ruby, a runtime that is on the Erlang BEAM, a macro system like that in Lisp, and a streaming library like you might find in Haskell, Elixir takes the best features from many environments. Elixir borrows from Erlang's "Let It Crash" philosophy, and adds significant improvements with structs, first-class hygienic macros, and abstractions such as protocols. Many of these ideas were borrowed from other communities, and they make a big difference in language adoption. This book gives you a quick guided tour through the fascinating world of Elixir!

Explore Elixir with the author of Seven Languages in Seven Weeks. In this fast-paced book - first published with Groxio's Programmer Passport - you'll discover how Elixir's fantastic documentation, clear error messages, and excellent tooling make it approachable and easy to work with. Learn about techniques other books skip, like writing your own Mix task, and discover several blind spots that beginning and intermediate Elixir developers encounter.

Effective Elixir depends on getting the most out of the most common datatypes - explore the most important ones before using them to write modules and different kinds of functions. Learn when to choose tuples, maps, or lists in your programs, and the most effective ways to access lists. Understand the differences between maps and keyword lists. Learn the primitives Elixir uses to start multiple processes and send messages between them. You'll finish the book by dabbling with the advanced techniques of streams, sigils, and macros.

Find out what Groxio customers already know. The assistance of an experienced guide will help you learn Elixir more quickly than you could without one.

What You Need:

You'll need Elixir version 1.12 or greater.

Table of Contents

  1.  Preface
  2. 1. Sweet Tooling
  3. 2. Data and Code Organization
  4. 3. Tuples and Functions
  5. 4. Lists and Algorithms
  6. 5. Key-Value Data
  7. 6. Processes and Concurrency
  8. 7. Blind Spots
  9. 8. Macros
  10.  Bibliography