From 48b81e07256c697c23a1aff896596300e7d0115b Mon Sep 17 00:00:00 2001 From: Stuart Halloway Date: Mon, 3 May 2010 17:42:22 -0400 Subject: put includes? back into the seq namespaces - seq-contains? is dead in clojure - includes? is deprecated, but no need to gratuitously break people --- src/main/clojure/clojure/contrib/seq.clj | 8 +++++++- src/main/clojure/clojure/contrib/seq_utils.clj | 7 +++++++ src/test/clojure/clojure/contrib/test_seq.clj | 9 +++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/main/clojure/clojure/contrib/seq.clj b/src/main/clojure/clojure/contrib/seq.clj index 5b335be5..abac65c0 100644 --- a/src/main/clojure/clojure/contrib/seq.clj +++ b/src/main/clojure/clojure/contrib/seq.clj @@ -140,7 +140,13 @@ [pred coll] (for [[idx elt] (indexed coll) :when (pred elt)] idx)) - +(defn includes? + "Returns true if coll contains something equal (with =) to x, + in linear time. Deprecated. prefer 'contains?' for key testing, + or 'some' for ad hoc linear searches." + {:deprecated true} + [coll x] + (boolean (some (fn [y] (= y x)) coll))) diff --git a/src/main/clojure/clojure/contrib/seq_utils.clj b/src/main/clojure/clojure/contrib/seq_utils.clj index 406f0d3e..018fc2e8 100644 --- a/src/main/clojure/clojure/contrib/seq_utils.clj +++ b/src/main/clojure/clojure/contrib/seq_utils.clj @@ -141,6 +141,13 @@ [pred coll] (for [[idx elt] (indexed coll) :when (pred elt)] idx)) +(defn includes? + "Returns true if coll contains something equal (with =) to x, + in linear time. Deprecated. Prefer 'contains?' for key testing, + or 'some' for ad hoc linear searches." + {:deprecated true} + [coll x] + (boolean (some (fn [y] (= y x)) coll))) diff --git a/src/test/clojure/clojure/contrib/test_seq.clj b/src/test/clojure/clojure/contrib/test_seq.clj index 144f7ced..2a7b5ef7 100644 --- a/src/test/clojure/clojure/contrib/test_seq.clj +++ b/src/test/clojure/clojure/contrib/test_seq.clj @@ -72,3 +72,12 @@ (deftest test-find-first (is (= (find-first even? [1 2 3 4 5]) 2)) (is (= (find-first even? '(1 2 3 4 5)) 2))) + +(deftest test-includes + (are [coll k] (false? (includes? coll k)) + [1 2 3] 0 + [] nil + [:a :b] :c) + (are [coll k] (true? (includes? coll k)) + [1 2 3] 1 + [:a :b] :b)) -- cgit v1.2.3-18-g5258