Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获得clojure中两个整数之间的排序集中的数字序列?_Clojure - Fatal编程技术网

如何获得clojure中两个整数之间的排序集中的数字序列?

如何获得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

假设我有一组已排序的整数,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_bound(x);
set<int>::iterator last = xs.lower_bound(y);
for (; first != last; ++first)
    // do something with *first
我可以在clojure中执行此操作吗?

Oops!我错过了该函数,文档的数据结构页中没有指向它的链接

(subseq xs >= x < y)