"Programs that write programs are called metaprograms. They occupy the space between your problem and its solution. When used haphazardly the results can be confusing and cryptic. But when used wisely, they simplify that space and make it possible to solve hard problems in elegant ways.
Elixir embraces metaprogramming. In fact, it's fundamental to the implementation of the language itself.
This talk will answer questions for you such as:
When should I write a macro?
What is quote and unquote and when do I use them?
When and where does this macro code execute?
Macro.prewalk? What does this have to do with macros?
Along with some practical examples.
What's more astonishing is how approachable (and safe!) Elixir makes this complex subject. With this solid foundation, your code will be writing itself in no time!"