Simple code generation means a program that takes input and produces an output.
But can we write a program that can read, change, or even create other programs?
Yes. We can do this through metaprogramming, which is essentially “Code that writes code.”
Consider a baker who bakes cakes. One day they realize that they’re just repeating the same steps again and again to do the same thing. They create a machine that bakes cakes. They create a factory that makes machines that bake cakes with more demand. This concept is called metaprogramming.
Metaprogramming enables us to write
An example of metaprogramming is the Logger
module in applications containing references or function calls to logging.
In Elixir metaprogramming, we can use macros to skip the overhead of function calls to logging.
We can recreate the Logger
macro and give it the ability to be enabled or disabled easily. We can then use our own created macro and enable it accordingly.
Free Resources