Ah yes, I see that 
here: 
https://github.com/clojure/clojure/blob/clojure-1.6.0/src/clj/clojure/main.clj#L64-L86

Thanks for the quick response!

On Saturday, August 16, 2014 1:36:11 PM UTC+1, Nicola Mometto wrote:
>
>
> Because in the repl you're using a thread-local value of *data-readers*, 
> not the var root, this is because the repl is executed under (binding 
> [*data-readers ..] ..) 
>
> If you try to set! *data-readers* instead, you'll see what you expect. 
>
> Consider: 
> user=> (def ^:dynamic x nil) 
> #'user/x 
> user=> x 
> nil 
> user=> (binding [x 2] (alter-var-root #'x (constantly 1)) x) 
> 2 
> user=> x 
> 1 
> user=> (binding [x 2] (set! x 3) x) 
> 3 
> user=> x 
> 1 
>
> Nicola 
>
> Kevin webster writes: 
>
> > Can someone explain why this is not altering the *data-readers* dynamic 
> > var? Does this work for anyone else? Using 1.6.0 
> > 
> > (assert (= {} *data-readers*)) 
> > ;; nil 
> > 
> > (alter-var-root (var *data-readers*) (fn [_] {:test 2})) 
> > ;; {:test 2} 
> > 
> > (assert (= {:test 2} *data-readers*)) 
> > ;; AssertionError 
> > 
> > (assert (= {:test 2} (alter-var-root (var *data-readers*) identity))) 
> > ;; nil 
> > 
> > Thanks! 
>

-- 
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
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to