fork download
  1. (def +envs+ (atom {}))
  2.  
  3.  
  4. (defmacro get-env []
  5. (let [env-key (gensym)]
  6. (swap! +envs+ assoc env-key &env)
  7. {:lb `(@+envs+ '~env-key)
  8. :vals (into {} ; Thanks to amalloy for pointing me to into
  9. (for [s (keys &env)]
  10. [(list 'quote s) s]))}))
  11.  
  12.  
  13. (let [a 1] (println (get-env)))
  14.  
Success #stdin #stdout 1.15s 220288KB
stdin
Standard input is empty
stdout
{:lb {a #<LocalBinding clojure.lang.Compiler$LocalBinding@19e8329>}, :vals {a 1}}