varのスレッドローカルバインディングを変更するために使用しようとしてset!
いますが、これらの変更は有効になっていないようです。次のことを考慮してください。
(def ^:dynamic *foo* :root)
(binding [*foo* :thread-local]
(let [val (doto :new
#(set! *foo* %))]
[val *foo*]))
結果は次のようになると思います[:new :new]
; 代わりに、これはに評価され[:new :thread-local]
ます。私はここで何を誤解していますか?