Мне было интересно, есть ли способ получить доступ к значению аргументов макроса первого потока в 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}
Но есть ли другие способы сделать это?