Clojure Dynamic Binding
问题 I realize the following is a bad idea for many reasons. I also realize that given I have a stackoverflow rep of 23, it's nature to assume that I'm a newb learning to program. However, please humor me, and focus on the "how can we do this" rather than "why do you want to do this / you don't want to do this" aspect. What I want: (def dog (Dog. ...)) (def cat (Cat. ...)) (with-animal dog (println (str "Dog: " (speak) "\n"))) (with-animal cat (println (str "Cat: " (speak) "\n"))) to output: Dog: