为什么地图不传达动态绑定?

时间:2019-12-27 08:35:13

标签: clojure

我正在尝试使用Clojure动态变量来控制详细程度:

(def ^:dynamic *verbose* true)

但是当我通过map调用函数时,设置的绑定不会保留。这是预期的行为吗?如果是这样,为什么?如何保留绑定?

(defn doprint [x] (when *verbose* (println "verbose")))
(doprint)
> verbose
  nil

(binding [*verbose* false] (doprint 1))
> nil

(binding [*verbose* false] (map doprint [1]))
> verbose
  (nil)

0 个答案:

没有答案