> On Sun, Aug 30, 2020 at 6:13 PM tyson andre <tysonandre...@hotmail.com>
> wrote:
>
>> > I like this, but I do not like the flags.  I don't think they're at all
>> useful.  A lot of the other discussion in the thread seems to be needlessly
>> complicating it, too.
>> >
>> > all() and any() only need return booleans.  Their callbacks only need
>> return booleans.  That's the point.  first() makes sense to add, and it
>> would return the first value that matches.
>>
>> What would first() return on failure? Would it throw (inefficient)?
>> Would it set an optional output reference to distinguish between
>> returning the value null from an iterable and the null from no matches?
>>
>
> If it took the default value as well it could return that. While it's
> useful in itself it also would enable you to pass a marker object and check
> the identity of that to know if no matches have been found:
>
> $none = new stdClass;
> $element = first($collection, fn($elt) => ...);
> if ($element === $none) {
>    // nothing found
> }
>

Of course it should have been `$element = first($collection, fn($elt)
=>..., $none);`

-- 
  Best regards,
      Bruce Weirdan                                     mailto:
weir...@gmail.com

Reply via email to