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 <stepharo.self@gmail.com> wrote:we do not have nextOrLess: in Pharo.��On Wed, Apr 26, 2017 at 6:19 AM, Richard Sargent <rsargent@5x5.on.ca> 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:pharo-users-bounces@lists.pharo.org ] 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?