(remove pred) (remove pred coll)
Returns a lazy sequence of the items in coll for which (pred item) returns false. pred must be free of side-effects. Returns a transducer when no collection is provided.
(remove pos? [1 -2 2 -1 3 7 0])
;;=> (-2 -1 0)
(remove nil? [1 nil 2 nil 3 nil])
;;=> (1 2 3)
;; remove items that are evenly divisible by 3
(remove #(zero? (mod % 3)) (range 1 21))
;;=> (1 2 4 5 7 8 10 11 13 14 16 17 19 20)
;; compare to filter
(remove even? (range 10))
;;=> (1 3 5 7 9)
(remove (fn [x]
(= (count x) 1))
["a" "aa" "b" "n" "f" "lisp" "clojure" "q" ""])
;;=> ("aa" "lisp" "clojure" "")
; When coll is a map, pred is called with key/value pairs.
(remove #(> (second %) 100)
{:a 1
:b 2
:c 101
:d 102
:e -1})
;;=> ([:a 1] [:b 2] [:e -1])
;; remove items from a set/list
(remove #{:a} #{:b :c :d :a :e})
;;=> (:e :c :b :d)
(remove #{:a} [:b :c :d :a :e :a :f])
;;=> (:b :c :d :e :f)