“step”参数与描述的行为不相关:(partition n coll)仅仅意味着(partition n n coll),即使用步长为n进行分区,因此它总是有一个步长值,这个值只是决定了在下一个分区开始之前在集合coll中要跳过的元素数量。Alex所描述的行为不受步长值的影响。
只当最后生成的分区不包含n个项时,填充集合才有意义
dev=> (partition 3 3 [:a :b :c] (range 5))
((0 1 2) (3 4 :a))
dev=> (partition 3 3 (range 5))
((0 1 2))
dev=> (partition 3 2 [:a :b :c] (range 5))
((0 1 2) (2 3 4) (4 :a :b))
dev=> (partition 3 2 (range 5))
((0 1 2) (2 3 4))
dev=> (partition 3 1 [:a :b :c] (range 5))
((0 1 2) (1 2 3) (2 3 4) (3 4 :a))
dev=> (partition 3 1 (range 5))
((0 1 2) (1 2 3) (2 3 4))