如何在Clojure中迭代集合的元素,以便在每次迭代中访问前一个,当前值和下一个值.
使用以下向量:
[1 2 3 4]
Run Code Online (Sandbox Code Playgroud)
我想在每次迭代中访问以下值:
[nil 1 2]
[1 2 3]
[2 3 4]
[3 4 nil]
Run Code Online (Sandbox Code Playgroud)
做到这一点的一种方式是通过concat
婷nil
之前和采集后和partition
通过以1的步长的3个元素荷兰国际集团它.
(def c [1 2 3 4])
(def your-fn println) ;; to print some output later
(map your-fn
(map vec (partition 3 1 (concat [nil] c [nil]))))
Run Code Online (Sandbox Code Playgroud)
(map vec
如果元素是LazySeq而不是向量,则可以删除该部分.)
哪个印刷品:
[nil 1 2]
[1 2 3]
[2 3 4]
[3 4 nil]
归档时间: |
|
查看次数: |
339 次 |
最近记录: |