# Contrived example returning the variadic arguments passed in.
(defmacro example-macro [& args] ~(tuple ,;args))
(example-macro 1 2 3) # => (1 2 3)
(def args [1 2 3])
# `apply` is for functions, but there's always `eval`.
(assert (= (example-macro 1 2 3)
(eval ~(example-macro ,;args))))