Could someone lay out clearly the various quoting mechanisms available for metaprogramming in Julia, and illustrate each one with a minimal example?
So that it is clear which to use in which situation...
As far as I can see there is:
:(someExpr; maybeMore)
quote; ...expressions... end;
which is almost the same as the above only with line numbers for debug purposesExpr(:quote, x)
which (according to @totalverb) is equivalent toMeta.quot(x)
- QuoteNode which (according to Jeff Bezanson) "is only used in the internal AST representation, not by macros. It's safe to ignore unless you work on later stages of the compiler."
Is this list comprehensive? Am I missing out any alternate representations?