Never mind my previous post. I realized my problem doesn't have
anything to do with threads at all. What I'm really asking is: Is it
possible for a closures to automatically capture a dynamic variable?

ie. The following doesn't work as you expect:

(def env)
(defn create-fn []
    (fn [] (println env)))

(binding [env "environment 1"]
  (def fn-a (create-fn)))  <-- create a "environment 1" function
(binding [env "environment 2"]
  (def fn-b (create-fn)))  <-- create a "environment 2" function

You must first capture the dynamic var in a let, and then capture the
let var in a closure

(defn create-fn []
  (let [env env]   <-- Capture dynamic var in a let
    (fn [] (println env))))

Thanks for reading.
  -Patrick
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to