function | since v0.0-1211 | clojure.core/subseq | Edit |
(subseq sc test key)
(subseq sc start-test start-key end-test end-key)
sc
must be a sorted collection.
test
, start-test
, end-test
must be <
, <=
, >
or >=
.
Returns a sequence of those entries with keys ek
for which
(test (.. sc comparator (compare ek key)) 0)
is true.
sc must be a sorted collection, test(s) one of <, <=, > or >=. Returns a seq of those entries with keys ek for which (test (.. sc comparator (compare ek key)) 0) is true
(defn subseq
([sc test key]
(let [include (mk-bound-fn sc test key)]
(if (#{> >=} test)
(when-let [[e :as s] (-sorted-seq-from sc key true)]
(if (include e) s (next s)))
(take-while include (-sorted-seq sc true)))))
([sc start-test start-key end-test end-key]
(when-let [[e :as s] (-sorted-seq-from sc start-key true)]
(take-while (mk-bound-fn sc end-test end-key)
(if ((mk-bound-fn sc start-test start-key) e) s (next s))))))