splitEvery: n
^ (n
to: self size
by: n)
collect: [:index |
(self copyFrom: index - n + 1 to: index)]

is my solution

On Wed, Apr 26, 2017 at 11:34 AM, [email protected] <[email protected]>
wrote:

> So the last 20 is left out.
>
> Correct?
>
> Phil
>
> On Wed, Apr 26, 2017 at 11:20 AM, Stephane Ducasse <
> [email protected]> wrote:
>
>> Now I fully got the implementation
>>
>>
>> "
>> #(16 17 17 16 18 17 18   19 19 19 18 19 19 20   19 20 19 20 20 20 19
>> 20) groupsOf: 7 atATimeCollect: [ :x | x ]
>> >>> #(#(16 17 17 16 18 17 18) #(19 19 19 18 19 19 20) #(19 20 19 20 20 20
>> 19))
>> "
>> "
>> #(1 1 1 10 10 10 100  100 100)
>> groupsOf: 3 atATimeCollect: [ :x :y :z | x + y + z]
>> >>> #(3 30 300)
>> "
>>
>> "
>> #(1 1 1 10 10 10 100  100 100)
>> groupsOf: 3 atATimeCollect: [ :x | x ]
>> >>> #(#(1 1 1) #(10 10 10) #(100 100 100))
>> "
>>
>> On Wed, Apr 26, 2017 at 8:38 AM, Stephane Ducasse <
>> [email protected]> wrote:
>>
>>> we do not have nextOrLess: in Pharo.
>>>
>>> On Wed, Apr 26, 2017 at 6:19 AM, Richard Sargent <[email protected]>
>>> wrote:
>>>
>>>> In 2003, I implemented the following method. It is something that comes
>>>> up from time to time.
>>>>
>>>> !SequenceableCollection publicMethods !
>>>> splitEvery: chunkSize
>>>>  "Answer a collection of sub-collections each of the specified chunk
>>>> size.
>>>>   If the receiver size is not a multiple of chunkSize, the last
>>>> sub-collection will be shorter."
>>>>
>>>>  | chunks stream |
>>>>  chunkSize < 1 ifTrue: [ ^self splitEvery: 1 ].
>>>>
>>>>  stream := ReadStream on: self.
>>>>  chunks := OrderedCollection new.
>>>>  [stream atEnd] whileFalse: [
>>>>   chunks add: (stream nextOrLess: chunkSize).
>>>>  ].
>>>>
>>>>  ^chunks.
>>>> ! !
>>>>
>>>> ------------------------------
>>>> *From:* Pharo-users [mailto:[email protected]] *On
>>>> Behalf Of *Stephane Ducasse
>>>> *Sent:* April 25, 2017 13:08
>>>> *To:* Any question about pharo is welcome
>>>> *Subject:* [Pharo-users] little "challenge"
>>>>
>>>> #(16    17 17 16 18 17 18 19    19 19 18 19 19 20 19   20 19 20 20 20
>>>> 19 20)
>>>>
>>>> ->
>>>>
>>>> { #(17 17 16 18 17 18 19) . #(19 19 18 19 19 20 19) . #(20 19 20 20 20
>>>> 19 20)}
>>>>
>>>> any code?
>>>>
>>>
>>>
>>
>

Reply via email to