Define local symbol macros that are used in the expansion of exprs.
The syntax is the same as for let forms.
(defmacro symbol-macrolet
"Define local symbol macros that are used in the expansion of exprs.
The syntax is the same as for let forms."
[symbol-bindings & exprs]
(let [symbol-map (into {} (map vec (partition 2 symbol-bindings)))
names (keys symbol-map)]
(binding [macro-fns (apply dissoc macro-fns names)
macro-symbols (merge macro-symbols symbol-map)]
`(do ~@(doall (map expand-all exprs))))))
Comments top
No comments for symbol-macrolet. Log in to add a comment.