hello everyone

I have a problem about binding function in clojure1.8. 
when I changed position of function which call a bound function I got 
different result.

If I define test4 (call test1 within it) before test1, binding would not 
work

(declare test1)

(defn test2 [](prn "test2"))


(defn test4 [] (test1))


(defn ^:dynamic test1 [] (prn "dynamic test1"))


(defn testB []
  (binding [test1 test2]
    (test1)
    (test4)
    ))


when I call (testB) result is 

"test2"
"dynamic test1"


But if I change postion of (defn test4 xxx) and (defn ^:dynamic test1 xxxx), 
binding will work well.


(declare test1)

(defn test2 [](prn "test2"))


(defn ^:dynamic test1 [] (prn "dynamic test1"))


(defn test4 [] (test1))


(defn testB []

  (binding [test1 test2]
    (test1)
    (test4)
    ))


result is 

"test2"
"test2"


Any way, with-bindings is the same as binding, but why ?


========

any help would be appreciated

-- 
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