【问题标题】:How do I make an infinite, repeating sequence in clojure?如何在 clojure 中创建无限重复序列?
【发布时间】:2013-08-01 15:21:27
【问题描述】:

我想获取一个序列或向量并创建一个无限循环的惰性版本。这是我尝试过的:

(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)))

但这似乎有点不令人满意和松弛。我假设重新构建一个序列序列很昂贵,但我很可能错了:)

【问题讨论】:

    标签: clojure sequence


    【解决方案1】:

    您正在寻找cycle:

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

    【讨论】:

      猜你喜欢
      • 2011-01-03
      • 2014-09-18
      • 1970-01-01
      • 2020-11-30
      • 2016-10-19
      • 2010-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多