Hi, all. I am reading Clojure in Action.
In the "scope" section of Chapter3, there are examples like this: defn twice [x] (println "original function") (* 2 x)) (defn call-twice [y] (twice y)) (defn with-log [function-to-call log-statement] (fn [& args] (println log-statement) (apply function-to-call args))) (call-twice 10) (binding [twice (with-log twice "Calling the twice function")] (call-twice 20)) (call-twice 30) When I tried to run this code in repl, I got the following exception: IllegalStateException Can't dynamically bind non-dynamic var: user/twice > clojure.lang.Var.pushThreadBindings (Var.java:353) Is the book wrong or I'm running with the wrong version of clojure? -- 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