The doc for partition states "In case there are not enough padding elements, return a partition with less than n items." However, the behavior of this function is as follows:
user=> (partition 3 (range 10))
((0 1 2) (3 4 5) (6 7 8))
user=> (partition 4 (range 10))
((0 1 2 3) (4 5 6 7))
Proposed: Proposed docstring update in bold:
Returns a lazy sequence of lists of n items each, at offsets step
apart. If step is not supplied, defaults to n, i.e. the partitions
do not overlap. If a pad collection is not supplied, any tail elements
that remain from dividing the input collection length by n will not be
included in a partition. If a pad collection is supplied, use its elements as
necessary to complete last partition upto n items. In case there are
not enough padding elements, return a partition with less than n items.
Patch: clj-1117.patch