There's also this introduction to Clojure macros presentation by Gary 
Fredericks from Clojure West 2013:

http://www.infoq.com/presentations/macros-clojure-west-2013

HTH,
Alex

On Tuesday, March 24, 2015 at 10:10:31 AM UTC-4, marc fawzi wrote:
> looks like magic to a beginner, trying to parse 
> 
> 
> ` is quote while ~ is unquote but what is ' compared to ` 
> 
> 
> also, does :tag in meta have a special meaning reserved for type hints?
> 
> 
> 
> is there a good reference that explains how macros work in clojure? like why 
> we need to quote and unquote (assuming that's not particular to macros but 
> macros is only place i've seen it used)? 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> On Tue, Mar 24, 2015 at 6:04 AM, Mike Thompson <[email protected]> wrote:
> On Tuesday, March 24, 2015 at 10:31:00 PM UTC+11, David Nolen wrote:
> 
> > On Tue, Mar 24, 2015 at 3:57 AM, Mike Thompson <[email protected]> wrote:
> 
> >
> 
> >
> 
> > The Google Closure compiler does deadcode eliminate the "x" if you do it 
> > this way.  And it avoids the complete nightmare of getting a type hint 
> > added to js/goog.DEBUG through a macro (which seems impossible to me).
> 
> >
> 
> >
> 
> > I just tested the approach that I suggested and verified it works the same 
> > as it does in Clojure.
> 
> >
> 
> >
> 
> >
> 
> > (defmacro when-debug [& body]
> 
> >   `(when ~(vary-meta 'js/goog.DEBUG assoc :tag 'boolean)
> 
> >      ~@body))
> 
> 
> 
> 
> 
> Many Thanks!  That works. Phew, thank goodness.
> 
> 
> 
> I can now see that your original code had "assoc" "name" incorrectly 
> transposed and that, combined with my rookie macro-debugging-skills, meant a 
> lot of thrashing about, wild tangents and hair pulling.  I can't wait to get 
> better at this stuff.
> 
> 
> 
> --
> 
> Mike
> 
> 
> 
> 
> 
> --
> 
> Note that posts from new members are moderated - please be patient with your 
> first post.
> 
> ---
> 
> You received this message because you are subscribed to the Google Groups 
> "ClojureScript" group.
> 
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> 
> To post to this group, send email to [email protected].
> 
> Visit this group at http://groups.google.com/group/clojurescript.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/clojurescript.

Reply via email to