Introducing Elixir: Getting Started in Functional Programming (2014)
Chapter 1. Getting Comfortable
Chapter 2. Functions and Modules
Chapter 3. Atoms, Tuples, and Pattern Matching
Chapter 4. Logic and Recursion
Chapter 5. Communicating with Humans
Chapter 8. Higher-Order Functions and List Comprehensions
Chapter 9. Playing with Processes
Chapter 10. Exceptions, Errors, and Debugging
Chapter 11. Storing Structured Data
Chapter 12. Getting Started with OTP
Chapter 13. Using Macros to Extend Elixir
Appendix A. An Elixir Parts Catalog
Appendix B. Generating Documentation with ExDoc