> 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