是否有内置方法从Clojure中的向量获取给定长度的每个切片?

bfo*_*ine 4 clojure

例如:

(each-slice 3 [1 2 3 4 5])
; => [[1 2 3] [2 3 4] [3 4 5]]
Run Code Online (Sandbox Code Playgroud)

编写它并不难,但有没有内置的方法呢?

Mic*_*zyk 9

如果要将切片作为向量返回,则无法在单个函数调用中执行此操作.在两个调用中,如果你真的想要切片(由创建者subvec),它仍然是不可能的; 否则你可以使用

(mapv vec (partition 3 1 [1 2 3 4 5]))
Run Code Online (Sandbox Code Playgroud)

获得新的常规向量.如果没有mapv vec,你会得到一系列的seqs.