Clojureにはread/write invarianceはない?
sorted-setをwriteしてreadしたらhash-setになる?
user=> (def hs (hash-set :a :b :c :d)) #'user/hs user=> (def ss (sorted-set :a :b :c :d)) #'user/ss user=> (def s (read-string (pr-str ss))) #'user/s user=> hs #{:a :c :b :d} user=> ss #{:a :b :c :d} user=> s #{:a :c :b :d} user=> (sorted? hs) false user=> (sorted? ss) true user=> (sorted? s) false
sortedであるという情報が抜け落ちてしまっている.Clojureにはread/write invarianceはない,ということ?
あと=の比較が型から独立している?なので
user=> (= '(a b c) '[a b c]) true
型を含めた比較や同一性の検査がしたいときはどうするんだろう.