add helper pred navs for common comparisons
This commit is contained in:
parent
af17c4617e
commit
5dea8919be
4 changed files with 21 additions and 1 deletions
|
|
@ -1,3 +1,7 @@
|
||||||
|
## 1.0.2-SNAPSHOT
|
||||||
|
|
||||||
|
* Added `pred=`, `pred<`, `pred>`, `pred<=`, `pred>=` for filtering using common comparisons
|
||||||
|
|
||||||
## 1.0.1
|
## 1.0.1
|
||||||
|
|
||||||
* `subselect`/`filterer` can remove entries in source by transforming to a smaller sequence
|
* `subselect`/`filterer` can remove entries in source by transforming to a smaller sequence
|
||||||
|
|
|
||||||
|
|
@ -192,7 +192,7 @@ user> (transform [(srange 4 11) (filterer even?)]
|
||||||
Append [:c :d] to every subsequence that has at least two even numbers:
|
Append [:c :d] to every subsequence that has at least two even numbers:
|
||||||
```clojure
|
```clojure
|
||||||
user> (setval [ALL
|
user> (setval [ALL
|
||||||
(selected? (filterer even?) (view count) #(>= % 2))
|
(selected? (filterer even?) (view count) (pred>= 2))
|
||||||
END]
|
END]
|
||||||
[:c :d]
|
[:c :d]
|
||||||
[[1 2 3 4 5 6] [7 0 -1] [8 8] []])
|
[[1 2 3 4 5 6] [7 0 -1] [8 8] []])
|
||||||
|
|
|
||||||
|
|
@ -996,6 +996,13 @@
|
||||||
pred
|
pred
|
||||||
i/pred*)
|
i/pred*)
|
||||||
|
|
||||||
|
|
||||||
|
(defn ^:direct-nav pred= [v] (pred #(= % v)))
|
||||||
|
(defn ^:direct-nav pred< [v] (pred #(< % v)))
|
||||||
|
(defn ^:direct-nav pred> [v] (pred #(> % v)))
|
||||||
|
(defn ^:direct-nav pred<= [v] (pred #(<= % v)))
|
||||||
|
(defn ^:direct-nav pred>= [v] (pred #(>= % v)))
|
||||||
|
|
||||||
(extend-type nil
|
(extend-type nil
|
||||||
ImplicitNav
|
ImplicitNav
|
||||||
(implicit-nav [this] STAY))
|
(implicit-nav [this] STAY))
|
||||||
|
|
|
||||||
|
|
@ -1518,6 +1518,15 @@
|
||||||
(is (= [1 :a 3 5] (setval (s/filterer even?) [:a] [1 2 3 4 5])))
|
(is (= [1 :a 3 5] (setval (s/filterer even?) [:a] [1 2 3 4 5])))
|
||||||
)
|
)
|
||||||
|
|
||||||
|
(deftest helper-preds-test
|
||||||
|
(let [data [1 2 2 3 4 0]]
|
||||||
|
(is (= [2 2] (select [s/ALL (s/pred= 2)] data)))
|
||||||
|
(is (= [1 2 2 0] (select [s/ALL (s/pred< 3)] data)))
|
||||||
|
(is (= [1 2 2 3 0] (select [s/ALL (s/pred<= 3)] data)))
|
||||||
|
(is (= [4] (select [s/ALL (s/pred> 3)] data)))
|
||||||
|
(is (= [3 4] (select [s/ALL (s/pred>= 3)] data)))
|
||||||
|
))
|
||||||
|
|
||||||
#?(:clj
|
#?(:clj
|
||||||
(do
|
(do
|
||||||
(defprotocolpath FooPP)
|
(defprotocolpath FooPP)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue