| function | since v0.0-1211 | 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))))))