See Original text in context
method batch(Supply: :, : --> Supply)
Creates a new supply that batches the values of the given supply by either the number of elements in the batch (using :elems
) or a duration (using :seconds
) or both. Any remaining values are emitted in a final batch when the supply is done.
Note: Since Rakudo version 2020.12, the :seconds
parameter has a millisecond granularity: for example a 1 millisecond duration could be specified as :seconds(0.001)
. Before Rakudo version 2020.12, the :seconds
parameter had a second granularity.
See Original text in context
multi method batch(Int )multi method batch(Int :!)
Coerces the invocant to a list
by applying its .list
method and uses List.batch
on it.
See Original text in context
multi method batch(Int --> Seq)multi method batch(Int : --> Seq)
Returns a sequence of lists, wherein each list with the exception of the last one is guaranteed to comprise a number of elements equal to the batch size specified by $batch
or $elems
, respectively. If the invocant has a number of elements that is not an integer multiple of the batch size, the last list in the returned sequence will contain any remaining elements and thus have less than $batch
or $elems
elements. Accordingly, .batch($batch)
is shorthand for .rotor($batch, :partial)
.