根据CLJ-799号文件中Rich的说法:"print-dup的作用是类型保留"
user=> (hash-map :k :v)
{:k :v}
user=> (type *1)
clojure.lang.PersistentHashMap
user=> (binding [*print-dup* true] (print-str *2))
"{:k :v}"
user=> (read-string *1)
{:k :v}
user=> (type *1)
clojure.lang.PersistentArrayMap
原因是由于{{RT.map}}在大小在{{PersistentArrayMap.HASHTABLE_THRESHOLD}}内时条件性地创建了一个数组映射。