# Brief Introduction to Julia Metaprogramming, Macros, and Generated Functions

**URL:** <https://discourse.julialang.org/t/brief-introduction-to-julia-metaprogramming-macros-and-generated-functions/20474>\
**Category:** Community\
**Created:** [February 5, 2019, 3:25pm UTC](https://discourse.julialang.org/t/brief-introduction-to-julia-metaprogramming-macros-and-generated-functions/20474 "2019-02-05T15:25:33Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![beenlanced](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/beenlanced/32/6993_2.png) [@beenlanced](https://discourse.julialang.org/u/beenlanced)\
**Post date:** [February 5, 2019, 3:25pm UTC](https://discourse.julialang.org/t/brief-introduction-to-julia-metaprogramming-macros-and-generated-functions/20474/1 "2019-02-05T15:25:33Z")

</div>

Hello Julia Community,

I am happy to share a IJulia notebook describing **Julia Metaprogramming, Macros, and Generated functions** for people new to Julia like myself.

the notebook and associated figures can be found here:

[https://github.com/beenlanced/juliaMetaprogramming](https://github.com/beenlanced/juliaMetaprogramming)

Happy Coding,

Lance

---

<div class="post-metadata">

**Author:** ![tkoolen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tkoolen/32/1603_2.png) [@tkoolen](https://discourse.julialang.org/u/tkoolen)\
**Post date:** [February 5, 2019, 4:44pm UTC](https://discourse.julialang.org/t/brief-introduction-to-julia-metaprogramming-macros-and-generated-functions/20474/2 "2019-02-05T16:44:37Z")

</div>

Just an idea: you could use [GitHub - JuliaTeX/TreeView.jl: Draw Julia syntax trees as a graph](https://github.com/JuliaTeX/TreeView.jl) to visualize the expressions instead of having static `.png`s.

---

<div class="post-metadata">

**Author:** ![beenlanced](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/beenlanced/32/6993_2.png) [@beenlanced](https://discourse.julialang.org/u/beenlanced)\
**Post date:** [February 5, 2019, 5:21pm UTC](https://discourse.julialang.org/t/brief-introduction-to-julia-metaprogramming-macros-and-generated-functions/20474/3 "2019-02-05T17:21:00Z")

</div>

@tkoolen I am unfamiliar with the _TreeView.jl_, but always looking to learn. Appreciate the reference. I will have a look.

---

<div class="post-metadata">

**Author:** ![alejandromerchan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/alejandromerchan/32/10500_2.png) [@alejandromerchan](https://discourse.julialang.org/u/alejandromerchan)\
**Post date:** [February 5, 2019, 5:41pm UTC](https://discourse.julialang.org/t/brief-introduction-to-julia-metaprogramming-macros-and-generated-functions/20474/4 "2019-02-05T17:41:18Z")

</div>

Thanks for this, it is really useful for beginners! I’ve never done any macro magic in Julia, because it sounds super esoteric to me, but reading your notebook really clarified a lot of stuff. I probably won’t be able to create macros still, but the concepts ant their meaning and certainly clearer.

---

<div class="post-metadata">

**Author:** ![Balinus](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/balinus/32/243_2.png) [@Balinus](https://discourse.julialang.org/u/Balinus)\
**Post date:** [February 5, 2019, 8:19pm UTC](https://discourse.julialang.org/t/brief-introduction-to-julia-metaprogramming-macros-and-generated-functions/20474/5 "2019-02-05T20:19:58Z")

</div>

Nice! That’s a good introduction for macros for newbies like me imho. 🙂
