コレクションあれこれ
vector と list は同値判定できる。でも set や hash-map はダメ。
(= [1 2 3] '(1 2 3)) ;=> true (= [1 2 '(3 4)] '(1 2 [3 4])) ;=> true (= [1 2 3] #{1 2 3}) ;=> false (= [:a 1 :b 2] {:a 1 :b 2}) ;=> false
コレクションの大小比較(辞書順)は compare
(compare [1 2 3] [1 2 3]) ;=> 0 (compare [1 2 3] [1 2 2]) ;=> 1 (compare [1 2 3] [1 2 4]) ;=> -1
= と違い vector と list の比較はできない
(compare [1 2 3] '(1 2 3)) ;=> java.lang.ClassCastException: clojure.lang.PersistentList cannot be cast to clojure.lang.IPersistentVector (NO_SOURCE_FILE:0)
next と rest の違い
コレクションの要素が2個未満の時結果が違う
(next [1 2 3]) ;=> (2 3) (rest [1 2 3]) ;=> (2 3) (next [1]) ;=> nil (rest [1]) ;=> () (next nil) ;=> nil (rest nil) ;=> ()