apply-template

added

ns
clojure.template

type
function

(apply-template argv expr values)

For use in macros.  argv is an argument list, as in defn.  expr is
a quoted expression using the symbols in argv.  values is a sequence
of values to be used for the arguments.

apply-template will recursively replace argument symbols in expr
with their corresponding values, returning a modified expr.

Example: (apply-template '[x] '(+ x x) '[2])
;=> (+ 2 2)

                user=> (apply-template '[a b c d e] '[d a b e c e b a d] '(1 2 3 4 5))
[4 1 2 5 3 5 2 1 4]  

user=> (apply-template '[a b c d e] '[d a b e c e b a d] '(1 [2 3] [4 5]))
[d 1 [2 3] e [4 5] e [2 3] 1 d]