Ben referanslar bir göz vardı: http://clojure.org/vars#Vars%20and%20the%20Global%20Environment, http://clojuredocs.org/clojure_core/clojure.core/bindingclojure'un dinamik vars ve bağlamalarının pratik amacı nedir?
yanı sıra clojure and ^:dynamic ve Clojure Dynamic Binding
binding
için ihtiyaç vardır Hala neden anlamıyorum hiç ben olmuş yazdım her program olarak Onlar olmadan ve geleneksel yollarla örnekleri yazmanın yollarını bulabilirim - ki bu daha anlaşılabilir buluyorum. Bunu kullanan projeler/programlama paradigmaları örnekleri var mı?
(def dog {:name "Dog" :sound "Woof"})
(def cat {:name "Cat" :sound "Meow"})
(defn speak [animal]
(str (:name animal) " says " (:sound animal))
(println (speak dog))
(println (speak cat))
hiçbir makro, dinamik hala ... bağlama çok temiz: örnek konuşan hayvanda örneğin
..., sen benzer bir etkiyi elde edebilirsiniz.
Stuart Sierra, bu blog yazısında Clojure'daki dinamik kapsamlamanın etkilerini anlatıyor: http://stuartsierra.com/2013/03/29/perils-of-dynamic-scope –