Write code that writes code with Elixir macros Macros make metaprogramming possible & define the language itself In this book you'll learn how to use macros to extend the language with fast maintainable code & share functionality in ways you never thought possible You'll discover how to extend Elixir with your own first-class features optimize performance & create domain-specific languages Metaprogramming is one of Elixir's greatest features Maybe you've played with the basics or written a few macros Now you want to take it to the next level This book is a guided series of metaprogramming tutorials that take you step by step to metaprogramming mastery You'll extend Elixir with powerful features & write faster more maintainable programs in ways unmatched by other languages You'll start with the basics of Elixir's metaprogramming system & find out how macros interact with Elixir's abstract format Then you'll extend Elixir with your own first-class features write a testing framework & discover how Elixir treats source code as building blocks rather than rote lines of instructions You'll continue your journey by using advanced code generation to create essential libraries in strikingly few lines of code Finally you'll create domain-specific languages & learn when & where to apply your skills effectively When you're done you will have mastered metaprogramming gained insights into Elixir's internals & have the confidence to leverage macros to their full potential in your own projects