[Pharo-users] Why do #select:thenXxx methods not return their result
monty2 at programmer.net
Thu Jun 7 23:03:02 EDT 2018
Not just more readable. They can also be more efficient. Look at #select:thenCollect: in OrderedCollection:
select: selectBlock thenCollect: collectBlock
" Optimized version Collection>>#select:thenCollect: "
| newCollection element |
newCollection := self copyEmpty.
firstIndex to: lastIndex do: [ :index |
element := array at: index.
(selectBlock value: element)
ifTrue: [ newCollection addLast: (collectBlock value: element) ]].
It only uses one temp collection, where a #select: followed by a separate #collect: would need two.
> Sent: Thursday, June 07, 2018 at 8:20 AM
> From: "Tim Mackinnon" <tim at testit.works>
> To: "Pharo Users Newsgroup" <pharo-users at lists.pharo.org>
> Subject: [Pharo-users] Why do #select:thenXxx methods not return their result
> Hi - are the methods like #select:thenCollect: frowned upon?
> They seem quite readable , however in using them I’ve noticed that unlike the core methods they done return the result of evaluation (they are missing a ^). This is a shame, but possibly an oversight?
> Sent from my iPhone
More information about the Pharo-users