This works for me: (def wrap-var) (defmacro datalog-term "Builds a term" [relation & formals] (let [wrapped-formals (map wrap-var formals)] `(struct rule ~relation (hash-map ~...@wrapped-formals))))
ie: using (has-map ...) instead of {} I believe this is because {} is handled at the reader level to specify a hash-map, not create one (excuse my inaccurate terminology). > just can't put a ~@ form inside of a { } set builder. {} is a hash-map, if you wanted a set #{} (def wrap-var) (defmacro datalog-term "Builds a term" [relation & formals] (let [wrapped-formals (map wrap-var formals)] `(struct rule ~relation (set ~...@wrapped-formals)))) Which I think is more what you want. Regards, Tim. --~--~---------~--~----~------------~-------~--~----~ 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 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 -~----------~----~----~----~------~----~------~--~---