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_Sequence - Fatal编程技术网

如何在clojure中创建一个无限重复的序列?

如何在clojure中创建一个无限重复的序列?,clojure,sequence,Clojure,Sequence,我想取一个序列或向量,创建一个无限的、循环的、懒惰的版本。这就是我所尝试的: (def test-seq '(1 2 3)) (take 5 (repeat test-seq)) 我得到了 ((1 2 3) (1 2 3) (1 2 3) (1 2 3) (1 2 3)) 当我想要的是 (1 2 3 1 2) 我知道这很管用 (take 5 (flatten (repeat test-seq))) 但这似乎有点不令人满意和松懈。我假设重新构造序列的成本很高,但我很可能是错的:)您正在寻找

我想取一个序列或向量,创建一个无限的、循环的、懒惰的版本。这就是我所尝试的:

(def test-seq '(1 2 3))
(take 5 (repeat test-seq))
我得到了

((1 2 3) (1 2 3) (1 2 3) (1 2 3) (1 2 3))
当我想要的是

(1 2 3 1 2)
我知道这很管用

(take 5 (flatten (repeat test-seq)))

但这似乎有点不令人满意和松懈。我假设重新构造序列的成本很高,但我很可能是错的:)

您正在寻找
周期

(take 5 (cycle '(1 2 3))) ;; => (1 2 3 1 2)