You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<!--
PRs require an approval from any of the core contributors, other than
the PR author.
Include this header if applicable:
Fixes #issue1, #issue2, ...
-->
### Problem
The current implementation of `Maybe.collect` checks if the partial
function is defined on the input value before calling it. This can be
sub-optimal, as it causes a double evaluation of pattern matchers and
guards in the partial function (once on the call to
`pf.isDefinedAt(value)` and once on the application `pf(value)`.
### Solution
<!--
Describe your solution. Focus on helping reviewers understand your
technical approach and implementation decisions.
-->
Using the `applyOrElse` method allows optimized implementations of
`PartialFuncion`, such as partial function literals (mentioned in
https://github.com/scala/scala/blob/780d80c714354871bc5972045926b7ccd042e102/src/library/scala/PartialFunction.scala#L194)
to avoid double evaluations of guards.
---------
Co-authored-by: Flavio Brasil <[email protected]>
0 commit comments