Returns a lazy sequence of successive items from coll while
(pred item) returns true. pred must be free of side-effects.
user=> (take-while neg? [-2 -1 0 1 2 3]) (-2 -1) user=> (take-while neg? [-2 -1 0 -1 -2 3]) (-2 -1) user=> (take-while neg? [ 0 1 2 3]) () user=> (take-while neg? []) () user=> (take-while neg? nil) ()
(defn take-while
"Returns a lazy sequence of successive items from coll while
(pred item) returns true. pred must be free of side-effects."
{:added "1.0"
:static true}
[pred coll]
(lazy-seq
(when-let [s (seq coll)]
(when (pred (first s))
(cons (first s) (take-while pred (rest s)))))))
Comments top
No comments for take-while. Log in to add a comment.