splitBy: to sequence.slate
=?X-UNKNOWN?Q?Olli_Pietil=E4inen?=
ollip at sdf.lonestar.org
Mon Jul 19 09:47:37 PDT 2004
Hi.
I wrote a small method for sequence.slate:
s@(Sequence traits) splitBy: n
"Splits the sequence to n-sized sequences. If size of the sequence is not
divisible by n, last element will be smaller."
[| subSeqs sepIndex nextSeq remainder |
n <= 0 ifTrue: [error: 'Split size must be positive.'].
n > s size ifTrue: [error: 'Split size shouldn\'t be bigger than sequence size.'].
subSeqs: ExtensibleArray newEmpty.
sepIndex: 0.
[sepIndex < (s size - (s size mod: n))]
whileTrue: [ nextSeq: (s copyFrom: sepIndex to: (sepIndex + n) - 1).
subSeqs addLast: nextSeq.
sepIndex: sepIndex + n].
sepIndex = s size
ifFalse: [ remainder: (s copyFrom: sepIndex to: (s size - 1)).
subSeqs addLast: remainder].
subSeqs
].
I don't know if this is a good name for it. Maybe groupBy: would be better?
Olli
More information about the Slate
mailing list