I try to avoid using reading macros in macro definitions. Maybe you could wrap the desired data in a quote form instead?
On Dec 23, 6:13 am, Andreas Fredriksson <deplineno...@gmail.com> wrote: > Hi, > I'm prototyping a source translation framework in Clojure and I've run > across a problem. I have a bunch of files with s-expression data and > I'd like to define my own macro expanders for that data, like this: > > (defmacro defexpander [sym args & body] > `(let [fun# (fn ~args ~...@body)] > (add-expander! '~sym fun#))) > > (defexpander foo [tree] `(+ ~@(rest tree) +)) ;;; (foo bar) -> (+ bar > +) > > add-expander! is a function that squirrels away the symbol-expander > mapping for future use when the transformations are being run. > > Now much to my confusion, the syntax-quote operator doesn't produce a > list, but a cons, with symbols resolved. I assume this was to simplify > macro handling internally within Clojure? > > Is there a way to do a proper list quasi quote exansion? Currently I > have to write > > (defexpander foo [tree] (list '+ (rest tree) '+)) > > which just doesn't scale beyond simple expressions. > > Thanks, > Andreas -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en