Returns true if coll implements Sequential
;; You may also find this useful: https://insideclojure.org/2015/01/02/sequences user=> (sequential? '(1 2 3)) true user=> (sequential? [1 2 3]) true user=> (sequential? (range 1 5)) true user=> (sequential? '()) true user=> (sequential? []) true user=> (sequential? nil) false user=> (sequential? 1) false user=> (sequential? "abc") false user=> (sequential? {:a 2 :b 1}) false user=> (sequential? #{1 2 3}) false
;; Be careful while traversing data: ;; map entries are vectors and thus sequential! user=> (sequential? (first {:a 1})) true user=> (sequential? (clojure.lang.MapEntry. :a 1)) true user=> (vector? (first {:a 1})) true user=> (vector? (clojure.lang.MapEntry. :a 1)) true user=> (clojure.walk/postwalk #(cond-> % (sequential? %) set) {:a [1 1 2 3]}) ; Unhandled java.lang.ClassCastException ; class clojure.lang.PersistentHashSet cannot be cast to class ; java.util.Map$Entry (clojure.lang.PersistentHashSet is in unnamed module of ; loader 'app'; java.util.Map$Entry is in module java.base of loader ; 'bootstrap') user=> (clojure.walk/postwalk #(cond-> % (and (sequential? %) (not (map-entry? %))) set) {:a [1 1 2 3]}) {:a #{1 3 2}}