AI
clj::sandbox=>Вот что макросы животворящие делают 😁
(defmacro def-str [pattern values]
(cons 'do
(map #(list 'def %1 %2)
(map #(symbol (subs % 1)) (re-seq #"\$\w+" pattern))
(re-seq #"\w+" values))))
#'sandbox/def-str
clj::sandbox=>
(macroexpand '(def-str "$greeting, $name" "Hello, James"))
(do (def greeting "Hello") (def name "James"))
clj::sandbox=>
(def-str "$greeting, $name" "Hello, James")
#'sandbox/name
clj::sandbox=>
[greeting name]
["Hello" "James"]