如何获得clojure中两个整数之间的排序集中的数字序列?
假设我有一组已排序的整数,xs,我想检索xs中所有[x,y,即介于x和y之间的整数 我可以做到:如何获得clojure中两个整数之间的排序集中的数字序列?,clojure,Clojure,假设我有一组已排序的整数,xs,我想检索xs中所有[x,y,即介于x和y之间的整数 我可以做到: (select #(and (>= % x) (< % y)) xs) 但这是低效的——当它可能是Olog n时,我希望返回的元素数量很小。使用take-while和drop-while可以让我在到达y时退出,但我仍然无法高效地跳转到x 我正在学习clojure,下面是我在C++中的实现方法: set<int>::iterator first = xs.lower_boun
(select #(and (>= % x) (< % y)) xs)
但这是低效的——当它可能是Olog n时,我希望返回的元素数量很小。使用take-while和drop-while可以让我在到达y时退出,但我仍然无法高效地跳转到x
我正在学习clojure,下面是我在C++中的实现方法:
set<int>::iterator first = xs.lower_bound(x);
set<int>::iterator last = xs.lower_bound(y);
for (; first != last; ++first)
// do something with *first
我可以在clojure中执行此操作吗?Oops!我错过了该函数,文档的数据结构页中没有指向它的链接
(subseq xs >= x < y)