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? >>>> >>> >>> >> >
