[squeak-dev] Boolean whenTrue:whenFalse:

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Tue May 14 15:02:25 UTC 2019


Oups, my example was a bit stupid because findLast: loop stops at first
true, but you get my intention...
Replace with select:/reject: or provide a whenFalse: side effect...

Le mar. 14 mai 2019 à 16:23, Nicolas Cellier <
nicolas.cellier.aka.nice at gmail.com> a écrit :

> Hi,
> From time to time, I need to perform some additional action (side effect)
> when a boolean is true, but preserve that boolean as return value.
>
> Here is a pseudo example:
>
>     self findLast: [:each |
>         | conforming |
>         conforming := self testSomeConditionFor: each.
>         conforming
>             ifTrue:
>                 [ "found one, do some side effect before searching next"
>                 self performSomeAction: each ].
>          conforming ].
>
> Or shorter, but I dislike the redundant true:
>
>     self findLast: [:each |
>         (self testSomeConditionFor: each)
>             and:
>                 [ "found one, do some side effect before searching next"
>                 self performSomeAction: each.
>                 true ]].
>
> What i seek is even shorter:
>
>     self findLast: [:each |
>         (self testSomeConditionFor: each)
>             whenTrue:
>                 [ "found one, do some side effect before searching next"
>                 self performSomeAction: each ]].
>
> Of course, we would have companions whenFalse:, whenTrue:whenFalse:...
> Would you buy it?
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20190514/2cca14a7/attachment.html>


More information about the Squeak-dev mailing list