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.
