apply-template
functionUsage: (apply-template argv expr values)
For use in macros. argv is an argument list, as in defn. expr isa quoted expression using the symbols in argv. values is a sequenceof values to be used for the arguments.apply-template will recursively replace argument symbols in exprwith their corresponding values, returning a modified expr.Example: (apply-template '[x] '(+ x x) '[2]) ;=> (+ 2 2)
Source
do-template
macroUsage: (do-template argv expr & values)
Repeatedly copies expr (in a do block) for each group of argumentsin values. values are automatically partitioned by the number ofarguments in argv, an argument vector as in defn.Example: (macroexpand '(do-template [x y] (+ y x) 2 4 3 5)) ;=> (do (+ 4 2) (+ 5 3))
Source