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

时间:2013-05-18 14:47:34

标签: clojure

E.g:

(each-slice 3 [1 2 3 4 5])
; => [[1 2 3] [2 3 4] [3 4 5]]

编写它并不难,但是有内置的方法吗?

1 个答案:

答案 0 :(得分:9)

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

(mapv vec (partition 3 1 [1 2 3 4 5]))

获取新的常规向量。如果没有mapv vec,您将得到一系列seqs。