我想知道在Clojure中,是否有一种方法可以在执行线程优先宏时访问其参数值。例如:
(def x {:a 1 :b 2})
(-> x
(assoc :a 20) ;; I want the value of x after this step
(assoc :b (:a x))) ;; {:a 20, :b 1}
我注意到这个可以工作:
(-> x
(assoc :a 20)
((fn [x] (assoc x :b (:a x))))) ;; {:a 20, :b 20}
但是还有其他方法吗?