Doing more with less might be a strange concept at first blush, but anyone familiar with LISP macros will attest that metaprogramming is something special and certainly something that should be in every language.
Metaprogramming, as the name might imply, is the means to write code that writes code. Typically, macros are the means of metaprogramming and in Elixir, they are first class.
The term macro may be scary, especially, if your background with macros is C and its macro system. Elixir macros are nothing like C macros. Elixir macros define the language, and they enable some pretty awesome power. It all boils down to the following: "Any Elixir code can be represented with Elixir data structures."
Stop and think about this for a second.
What does this really mean? It means that any line of code in Elixir, any, can be represented using the most basic data structures of Elixir, namely, numbers, strings, tuples, and lists.
This chapter is going...