Skip to content

Instantly share code, notes, and snippets.

@ztellman
Created September 4, 2013 16:18
Show Gist options
  • Select an option

  • Save ztellman/6439318 to your computer and use it in GitHub Desktop.

Select an option

Save ztellman/6439318 to your computer and use it in GitHub Desktop.
(use 'riddley.walk 'riddley.compiler)
(defmacro symbol-macrolet [bindings & body]
`(let [~@(->> bindings
(partition 2)
(mapcat
(fn [[k v]]
[(with-meta k {::symbol-macro v}) nil])))]
~@body))
(defn symbol-macroexpand-all [form]
(walk-exprs
symbol?
(fn [sym]
(prn sym (locals))
(if-let [sym' (-> (locals) (find sym) key meta ::symbol-macro)]
sym'
sym))
form))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment