これが私が期待するように機能することを考えると:
(do
(println (resolve 'a)) ; nil
(def a "a")
(println (resolve 'a))) ; #'user/a
なぜこれが行われないのかを理解したいと思います。
(future
(println (resolve 'b)) ; #'user/b (shouldn't it be still undefined at this point?)
(def b "b")
(println (resolve 'b))) ; #'user/b
これが適切な解決策であるかどうかも知りたいです(同じ問題を正確に解決するわけではありませんが、私のコンテキストで同等の仕事をしています):
(def c (atom nil))
(future
(println @c) ; nil
(reset! c "c")
(println @c)) ; c