Metaprogramming Elixir (Pragmatic Bookshelf)

PragmaticBookshelf

Chris McCord

edited by Jacquelyn Carter @jkcarter

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 and write faster, more maintainable programs in ways unmatched by other languages.

You’ll start with the basics of Elixir’s metaprogramming system and 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, and 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 and learn when and where to apply your skills effectively.

When you’re done, you will have mastered metaprogramming, gained insights into Elixir’s internals, and have the confidence to leverage macros to their full potential in your own projects


“This book is exactly what the young Elixir community needs! Chris McCord does
an elegant job of laying out Elixir metaprogramming step by step, with practical
and wonderfully instructive examples throughout”

–Bruce Tate @redrapids, President, RapidRed, LLC


  • Full details: Search
  • View this book’s portal and details on how to post errata and suggestions here.

Don’t forget you can get 35% off with your Devtalk discount! Just use the coupon code “devtalk.com" at checkout :+1:

Latest Threads About This Book Top

ediw8311xht
The test function in the Assertion module only tests the last assert. This is because only the last command output is returned and recei...
New
VAK
On page 9 of “Metaprogramming Elixir” I came across, I think, an error. I thought for a long time whether to write about it or not, but I...
New
a-maze-d
I’m reading an ebook version, therefore only the section number instead of a page number. It’s part of the “Easy integration testing with...
New
deadbeef
The code example on page 22 is intended to show how to re-create Elixir’s if macro. However, it uses if on line 3. The macro block just ...
New
Walheimat
Example: The Language of Macros - Injecting Code - ‘callers_context.exs’ no longer works (Elixir 1.10.4+) (Pos. 600-627) The function ca...
New
Ted
I picked up Metaprogramming Elixir with the intent of reading it at a later time, once I had a bit more exposure and experience with Elix...
New
PragmaticBookshelf
Chris McCord edited by Jacquelyn Carter @jkcarter Metaprogramming is one of Elixir’s greatest features. Maybe you’ve played with the bas...
New

Most Active This Week Top

Most Active This Month Top

Most Active This Year Top

ediw8311xht
The test function in the Assertion module only tests the last assert. This is because only the last command output is returned and recei...
New

Most Active Last Three Years Top

Walheimat
Example: The Language of Macros - Injecting Code - ‘callers_context.exs’ no longer works (Elixir 1.10.4+) (Pos. 600-627) The function ca...
New
deadbeef
The code example on page 22 is intended to show how to re-create Elixir’s if macro. However, it uses if on line 3. The macro block just ...
New
a-maze-d
I’m reading an ebook version, therefore only the section number instead of a page number. It’s part of the “Easy integration testing with...
New
VAK
On page 9 of “Metaprogramming Elixir” I came across, I think, an error. I thought for a long time whether to write about it or not, but I...
New

Most Active Over Three Years Top

Ted
I picked up Metaprogramming Elixir with the intent of reading it at a later time, once I had a bit more exposure and experience with Elix...
New
PragmaticBookshelf
Chris McCord edited by Jacquelyn Carter @jkcarter Metaprogramming is one of Elixir’s greatest features. Maybe you’ve played with the bas...
New

Get money off!

The Pragmatic Bookshelf

35% off any eBook

Simply use coupon code "devtalk.com" at checkout. See full details here.