Programming Elixir 1.3: Functional |> Concurrent |> Pragmatic |> Fun
- Length: 350 pages
- Edition: 1
- Language: English
- Publisher: Pragmatic Bookshelf
- Publication Date: 2016-11-11
- ISBN-10: 168050200X
- ISBN-13: 9781680502008
- Sales Rank: #745280 (See Top 100 Books)
Explore functional programming without the academic overtones (tell me about monads just one more time). Create concurrent applications, but get them right without all the locking and consistency headaches. Meet Elixir, a modern, functional, concurrent language built on the rock-solid Erlang VM. Elixir’s pragmatic syntax and built-in support for metaprogramming will make you productive and keep you interested for the long haul. Maybe the time is right for the Next Big Thing. Maybe it’s Elixir. This book is the introduction to Elixir for experienced programmers, completely updated for Elixir 1.3.
Functional programming techniques help you manage the complexities of today’s real-world, concurrent systems; maximize uptime; and manage security. Enter Elixir, with its modern, Ruby-like, extendable syntax, compile and runtime evaluation, hygienic macro system, and more. But, just as importantly, Elixir brings a sense of enjoyment to parallel, functional programming. Your applications become fun to work with, and the language encourages you to experiment.
Part 1 covers the basics of writing sequential Elixir programs. We’ll look at the language, the tools, and the conventions. Part 2 uses these skills to start writing concurrent code-applications that use all the cores on your machine, or all the machines on your network! And we do it both with and without OTP. Part 3 looks at the more advanced features of the language, from DSLs and code generation toextending the syntax.
This edition is fully updated with all the new features of Elixir 1.3, with a new chapter on Tooling, covering testing (both conventional and property based), code and dependency exploration, and servermonitoring.By the end of this book, you’ll understand Elixir, and know how to apply it to solve your complex, modern problems.
What You Need:
You’ll need a computer, a little experience with another high-level language, and a sense of adventure. No functional programming experience is needed.
Table of Contents
Chapter 1. Take the Red Pill
Part I Conventional Programming
Chapter 2. Pattern Matching
Chapter 3. Immutability
Chapter 4. Elixir Basics
Chapter 5. Anonymous Functions
Chapter 6. Modules and Named Functions
Chapter 7. Lists and Recursion
Chapter 8. Maps, Keyword Lists, Sets, and Structs
Chapter 9. An Aside—What Are Types?
Chapter 10. Processing Collections—Enum and Stream
Chapter 11. Strings and Binaries
Chapter 12. Control Flow
Chapter 13. Organizing a Project
Chapter 14. Tooling
Part II Concurrent Programming
Chapter 15. Working with Multiple Processes
Chapter 16. Nodes—The Key to Distributing Services
Chapter 17. OTP: Servers
Chapter 18. OTP: Supervisors
Chapter 19. OTP: Applications
Chapter 20. Tasks and Agents
Part III More Advanced Elixir
Chapter 21. Macros and Code Evaluation
Chapter 22. Linking Modules: Behavio(u)rs and Use
Chapter 23. Protocols—Polymorphic Functions
Chapter 24. More Cool Stuff
Appendix A1. Exceptions: raise and try, catch and throw
Appendix A2. Type Specifications and Type Checking