Skip to content

Instantly share code, notes, and snippets.

@sunilnandihalli
Created December 4, 2010 08:11
Show Gist options
  • Select an option

  • Save sunilnandihalli/728030 to your computer and use it in GitHub Desktop.

Select an option

Save sunilnandihalli/728030 to your computer and use it in GitHub Desktop.
(let [*stack-of-local-binding-maps* (atom '())]
(defmacro pop-environment []
(swap! *stack-of-local-binding-maps* pop) nil)
(defmacro push-environment []
(swap! *stack-of-local-binding-maps* conj &env) nil)
(defmacro display-new-bindings [& body]
`(do
~@(map (fn [x#] (list 'println [`'~x# x#]))
(keys (into {}
(clojure.set/difference (set &env)
(set (first @*stack-of-local-binding-maps*))))))
(push-environment)
~@body
(pop-environment))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment