Я играл в REPL, и у меня было какое-то странное поведение:
Clojure 1.4.0
user=> (type {:a 1})
clojure.lang.PersistentArrayMap
user=> (def x {:a 1})
#'user/x
user=> (type x)
clojure.lang.PersistentHashMap
Я думал, что все маленькие буквенные карты являются экземплярами PersistentArrayMap
, но, по-видимому, это не тот случай, если он связан с def
. Почему использование def
вызывает Clojure для выбора другого представления для моей карты litte? Я знаю, что это, вероятно, какая-то странная деталь реализации, но мне любопытно.