tupelo.quote
tmpl
macro
(tmpl form)
Template macro similar to clojure.core/syntax-quote, except does not prepend current namespace to all free symbols. Value substitution is supported via `(insert ...)` and `(splice ...)` forms: ``` (ns demo.core (:require [tupelo.quote :as q])) ; problem: free symbols a and b are fully-qualified using current ns `[a b ~(+ 2 3)] => [demo.core/a demo.core/b 5] (q/tmpl-fn '[a b (insert (+ 2 3))]) => [a b 5] (let [a 1 b 2] (q/tmpl [a b (insert (+ 2 3))])) => [1 2 5] (is= [1 [2 3 4] 5] (q/tmpl [1 (insert (t/thru 2 4)) 5])) (is= [1 2 3 4 5] (q/tmpl [1 (splice (t/thru 2 4)) 5])) ```
tmpl-fn
(tmpl-fn form)
Template function similar to clojure.core/syntax-quote, except does not prepend current namespace to all free symbols. Value substitution is supported via `(insert ...)` and `(splice ...)` forms: ``` (ns demo.core (:require [tupelo.quote :as q])) ; problem: free symbols a and b are fully-qualified using current ns `[a b ~(+ 2 3)] => [demo.core/a demo.core/b 5] (q/tmpl-fn '[a b (insert (+ 2 3))]) => [a b 5] (let [a 1 b 2] (q/tmpl [a b (insert (+ 2 3))])) => [1 2 5] (is= [1 [2 3 4] 5] (q/tmpl [1 (insert (t/thru 2 4)) 5])) (is= [1 2 3 4 5] (q/tmpl [1 (splice (t/thru 2 4)) 5])) ```