[squeak-dev] Re: Collection's #fold: vs #reduce:

Eliot Miranda eliot.miranda at gmail.com
Tue Nov 2 19:44:49 UTC 2010


On Tue, Nov 2, 2010 at 12:37 PM, Andreas Raab <andreas.raab at gmx.de> wrote:

> On 11/2/2010 12:25 PM, Eliot Miranda wrote:
>
>> And of course one can consider using thisContext instead of Object new
>> or {}, since thisContext has to be instantiated anyway for the closure
>> in fold:, and so results in less memory pressure.  This needs careful
>> measurement; you have the test bed set up for that; my workspace hacks
>> are showing too much variability to distinguish.
>>
>
> I'm sorry but if your application is limited by the performance of
> reduce/fold you're doing it wrong. Can we discuss *clarity* of the solution
> over performance please? If we'd really need a high-performance variant,
> then *nothing* beats a trivial custom implementation in Array along the
> lines of:
>
> Array>>reduce: aBlock
>
>  result := self at: 1.
>  2 to: self size do:[:i| result := aBlock value: result value: (self at:
> 1)].
>
> -- "Premature optimization is the root of all evil" --
>

I know.  I'm joking ;)  It's still interesting to see how code generator
fallibilities make measurable differences.  I did say I thought the whoorish
speed differences were too ugly to contemplate.

best
Eliot


>
> Cheers,
>  - Andreas
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20101102/562141e2/attachment.htm


More information about the Squeak-dev mailing list