(defmacro test [a b] `(~a ~@b)) (clojure.walk/macroexpand-all '(test 0 {:a 1 :b 2})) ;; => (0 [:a 1] [:b 2]) (defmacro test2 [a b] `(~a ~@(flatten (into [] b)))) (clojure.walk/macroexpand-all '(test2 0 {:a 1 :b 2})) ;; => (0 :a 1 :b 2)