我想采用一个序列或向量,并创建一个无限的,循环的,懒惰的版本.这是我试过的:
(def test-seq '(1 2 3))
(take 5 (repeat test-seq))
Run Code Online (Sandbox Code Playgroud)
我得到了
((1 2 3) (1 2 3) (1 2 3) (1 2 3) (1 2 3))
Run Code Online (Sandbox Code Playgroud)
当我想要的是
(1 2 3 1 2)
Run Code Online (Sandbox Code Playgroud)
我知道这很有效
(take 5 (flatten (repeat test-seq)))
Run Code Online (Sandbox Code Playgroud)
但这似乎有点令人不满和松弛.我假设重新组织一系列序列很昂贵,但我可能错了:)
mty*_*aka 11
您正在寻找cycle:
(take 5 (cycle '(1 2 3))) ;; => (1 2 3 1 2)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
858 次 |
| 最近记录: |