与包含所有元素的分区相关的功能?(Function related to partition that includes all elements?)
Clojure的partition函数的这种行为不是我所需要的:
user=> (partition 3 (range 3)) ((0 1 2)) user=> (partition 3 (range 4)) ((0 1 2)) user=> (partition 3 (range 5)) ((0 1 2)) user=> (partition 3 (range 6)) ((0 1 2) (3 4 5))我需要包含收集的“剩余”部分,例如:
user=> (partition* 3 (range 4)) ((0 1 2) (3)) user=> (partition* 3 (range 5)) ((0 1 2) (3 4))有没有一个标准的库函数可以实现我想要的功能?
This behavior of Clojure's partition function is not what I need:
user=> (partition 3 (range 3)) ((0 1 2)) user=> (partition 3 (range 4)) ((0 1 2)) user=> (partition 3 (range 5)) ((0 1 2)) user=> (partition 3 (range 6)) ((0 1 2) (3 4 5))I need the 'leftover' portions of the collection to be included, e.g.:
user=> (partition* 3 (range 4)) ((0 1 2) (3)) user=> (partition* 3 (range 5)) ((0 1 2) (3 4))Is there a standard library function that does what I want?
最满意答案
你正在寻找partition-all 。 只需在你的例子中替换它:
user> (partition-all 3 (range 4)) ((0 1 2) (3)) user> (partition-all 3 (range 5)) ((0 1 2) (3 4))You're looking for partition-all. Just replace it in your example:
user> (partition-all 3 (range 4)) ((0 1 2) (3)) user> (partition-all 3 (range 5)) ((0 1 2) (3 4))更多推荐
发布评论