seqable?

added
1.9

ns
clojure.core

type
function

(seqable? x)

Return true if the seq function is supported for x

                ;;;; nil is seqable

(seqable? nil)
;;=> true

;;;; Anything that implements CharSequence is seqable

(seqable? "")
;;=> true
(seqable? (java.lang.StringBuilder.))
;;=> true
(seqable? (java.lang.StringBuffer.))
;;=> true

;;;; Anything that implements Seqable is seqable

(seqable? [])
;;=> true
(seqable? {})
;;=> true
(seqable? #{})
;;=> true
(seqable? '())
;;=> true
(seqable? (lazy-seq))
;;=> true

;;;; Anything that implements Iterable is seqable

(seqable? (java.util.ArrayList.))
;;=> true
(seqable? (java.util.HashMap.))
;;=> true
(seqable? (java.util.HashSet.))
;;=> true

;;;; Arrays are seqable

(seqable? (int-array 5 1))
;;=> true
(seqable? (double-array 5 1.0))
;;=> true
(seqable? (char-array 5 \\c))
;;=> true

;;;; Some stuff that isn't seqable

(seqable? true)
;;=> false
(seqable? \\c)
;;=> false
(seqable? 1)
;;=> false
(seqable? 1.0)
;;=> false
(seqable? (fn f []))
;;=> false