(defmacro macfoo [string & subs] `(-> ~string ~@(for [sub subs] `(foo ~sub)))) user> (macfoo "hi %foo% %foo%" "foo" "bar") "hi foo bar"