sequence

added
1.0

ns
clojure.core

type
function

(sequence coll) (sequence xform coll) (sequence xform coll & colls)

Coerces coll to a (possibly empty) sequence, if it is not already
one. Will not force a lazy seq. (sequence nil) yields (), When a
transducer is supplied, returns a lazy sequence of applications of
the transform to the items in coll(s), i.e. to the set of first
items of each coll, followed by the set of second
items in each coll, until any one of the colls is exhausted.  Any
remaining items in other colls are ignored. The transform should accept
number-of-colls arguments

                user> (sequence [1 2 3])
(1 2 3)
user> (class (sequence '(1 2 3)))
clojure.lang.PersistentList
            
                ;; let us make a transducer
user=> (def xf (comp (filter odd?) (take 5)))
#'user/xf
user=> (sequence xf (range 1 10))
(1 3 5 7 9)