[Pharo-users] Lazy Streams - was: Re: Set >> collect:thenDo:

Steffen Märcker merkste at web.de
Tue Sep 10 06:16:27 EDT 2019


Hi,

I really think we should have an efficient way to chain operations on
collections and alike. In my personal opinion, this should be backed by
transducers, as they decouple the operations from the type the data source
and sink. Hence they are applicable to different collection types, streams
and so on. Also, transducers allow for straight-forward parallization of
operations that are concurrency-safe.

However, the transducers port is not complete yet. I think I'll finish it
in October/November, but definitely this year. Maybe this could be a
starting point to discuss how to move forward?

One related question: Is there a somewhat comprehensive benchmark yielding
a baseline of Pharo's collection/streams/iteration performance? I'd really
like to compare the existing implemenation to the alternative approaches.

Best regards,
Steffen


Am .09.2019, 11:30 Uhr, schrieb Kasper Østerbye
<kasper.osterbye at gmail.com>:

> On 10 September 2019 at 00.56.28, Richard O'Keefe (raoknz at gmail.com)
> wrote:
>
> Does that sound like a way forward?
> I could convert my implementation of this interface to
> Pharo if people would like me to.
>
> Hi Richard,
>
> It seems like what you propose (in sofar as I understand it) is already
> present in at least three other libraries which have not yet made it to
> the
> core of Pharo:
>
> The Iterator framework Julien is working on:
> https://github.com/juliendelplanque/Iterators
>
> The XStreams framework: https://code.google.com/archive/p/xtreams/
> <https://code.google.com/archive/p/xtreams/>
>
> The transducers: https://github.com/Pharophile/Transducers
> <https://github.com/Pharophile/Transducers>
>
> I was not aware of the virtual collections from Strongtalk.
>
> I am aware you know them (as you commented on the Iterators Julien
> proposed).
>
> I have been working with the LINQ stream/iterator framework in C#, and
> found that to be a rather sound library, lazy evaluation. The streams in
> Java are also nice, and are actually very good at exploiting multi cores.
>
> It is sad there is no lazy streams in the core of Pharo, and I would find
> it intersting to participate in a project to build one.
>
> Best,
>
> Kasper





More information about the Pharo-users mailing list