[squeak-dev] Collections/Streams | About enumerating a sequence up to a matching query ...

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Tue Mar 9 07:07:06 UTC 2021


Also the question of inclusion will arise as well as the order of
predicates...

There could also be symetrical once: [:x | x > 10].

Le lun. 8 mars 2021 à 23:33, Nicolas Cellier <
nicolas.cellier.aka.nice at gmail.com> a écrit :

> I like that, it's beginning to be expressive, even better than clojure.
> However, i think that clojure offers composable predicates thanks to
> lazyness... like Xtreams.
>
> Le lun. 8 mars 2021 à 21:38, Jaromir Matas <m at jaromir.net> a écrit :
>
>> > I am looking for something like #collect:until: or #upToSatisfying:. I
>> do
>> want the stop element to be included here, not sure about the general
>> case.
>> >
>> > aButton withAllOwners
>> >    collect: [:morph | morph color]
>> >    until: [:morph | morph isSystemWindow].
>> >
>>
>> Hi again, ahh so you're actually looking for a generalized collect for any
>> SequencableCollection or Stream :) Like this?
>>
>> (1 to: 100)
>>         collect: [:x | x squared]
>>         where: [:x | x even]
>>         until: [:x | x squared = 2500]
>>
>>
>> collect: collectBlock where: whereBlock until: untilBlock
>>
>>         | result supplier |
>>         supplier := self readStream.
>>         result := {} writeStream.
>>         [[supplier atEnd]
>>             whileFalse: [ | val |
>>               val := supplier next.
>>               (whereBlock value: val) ifTrue: [result nextPut:
>> (collectBlock value:
>> val)].
>>               (untilBlock value: val) ifTrue: [^result contents]]
>>         ] value.
>>         ^result contents
>>
>> collect: colBlock until: untilBlock
>>
>>         ^self collect: colBlock where: [:each | true] until: untilBlock
>>
>> or even:
>>
>> collect: colBlock
>>
>>         ^self collect: colBlock until: [:each | true]
>>
>>
>>
>>
>> -----
>> ^[^ Jaromir
>> --
>> Sent from: http://forum.world.st/Squeak-Dev-f45488.html
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20210309/9a4cf76b/attachment.html>


More information about the Squeak-dev mailing list