I think you're missing a quote in your original macro. You wrote: (defmacro foo [& xs] `(map identity ~xs))
Try this in a REPL: user=> (macroexpand-1 '(foo 1 2)) (clojure.core/map clojure.core/identity (1 2)) That shows you that it's going to try to evaluate the form (1 2). The original complaint is that 1 is not a function. Using the vector notation [] created a literal vector which works without quoting. Try this instead: user=> (defmacro foo [& xs] `(map identity (quote ~xs))) #'user/foo user=> (foo 1 2) (1 2) -- 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