Similar is: user=> #{[] ()} #{[]} user=> #{[] [1 2]} #{[] [1 2]} user=> (hash-set [] ()) #{[]}
Frantisek On Feb 15, 12:38 am, Frantisek Sodomka <fsodo...@gmail.com> wrote: > Hello! > Function 'set' looses some of its data. It seems that there is a > problem with comparison between lists and vectors: > > user=> (count [nil false true 0 42 0.0 3.14 2/3 0M 1M \c "" "abc" > 'sym :kw () '(1 2) [] [1 2] {} {:a 1 :b 2} #{} #{1 2}]) > 23 > user=> (set [nil false true 0 42 0.0 3.14 2/3 0M 1M \c "" "abc" > 'sym :kw () '(1 2) [] [1 2] {} {:a 1 :b 2} #{} #{1 2}]) > #{nil 0 0.0 0M "" {} #{} 2/3 () "abc" {:a 1, :b 2} (1 2) #{1 2} \c > 3.14 42 sym true :kw false 1M} > user=> (count (set [nil false true 0 42 0.0 3.14 2/3 0M 1M \c "" "abc" > 'sym :kw () '(1 2) [] [1 2] {} {:a 1 :b 2} #{} #{1 2}])) > 21 > ; missing are [] and [1 2] > > user=> (set [()]) > #{()} > user=> (set [() []]) > #{()} > user=> (set [() [] {}]) > #{{} ()} > > user=> (set [[] [1 2]]) > #{[] [1 2]} > user=> (set [[] [1 2] 1]) > #{[] 1 [1 2]} > user=> (set [[] [1 2] ()]) > #{[] [1 2]} > user=> (set [() [] [1 2]]) > #{() [1 2]} > > What data types is sorted-set supposed to work on? When used with > different data types, it errors out:http://clojure.org/data_structures > > user=> (doc sorted-set) > ------------------------- > clojure.core/sorted-set > ([& keys]) > Returns a new sorted set with supplied keys. > > user=> (sorted-set 4 2) > #{2 4} > user=> (sorted-set () []) > java.lang.ClassCastException: clojure.lang.PersistentList$EmptyList > cannot be cast to clojure.lang.IPersistentVector (NO_SOURCE_FILE:0) > user=> (sorted-set nil false true 0 42 0.0 3.14 2/3 0M 1M \c "" "abc" > 'sym :kw () '(1 2) [] [1 2] {} {:a 1 :b 2} #{} #{1 2}) > java.lang.ClassCastException: java.lang.Boolean cannot be cast to > java.lang.Number (NO_SOURCE_FILE:0) > user=> (sorted-set '(1 2) 1) > java.lang.ClassCastException: clojure.lang.PersistentList cannot be > cast to java.lang.Number (NO_SOURCE_FILE:0) > user=> (sorted-set '(1 2) "abc") > java.lang.ClassCastException: clojure.lang.PersistentList cannot be > cast to java.lang.String (NO_SOURCE_FILE:0) > user=> (sorted-set "abc" #{1 2}) > java.lang.ClassCastException: clojure.lang.PersistentHashSet cannot be > cast to java.lang.Comparable > (NO_SOURCE_FILE:0) > user=> (sorted-set 42 #{1 2}) > java.lang.ClassCastException: clojure.lang.PersistentHashSet cannot be > cast to java.lang.Comparable > (NO_SOURCE_FILE:0) > > It works when types are the same: > user=> (sorted-set "z" "b") > #{"b" "z"} > user=> (sorted-set 42 2.0) > #{2.0 42} > user=> (sorted-set [2 3] [1]) > #{[1] [2 3]} > > Frantisek --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---