Skip to content

Value should be lazy in Option.when #107

Description

@otto-dev

It is often the case that the value A in Option.when cannot be constructed if the predicate is false. Example:

final headOption = Option.when(list.isNotEmpty, list.first); // this throws

That often defeats the purpose and there is option(predicate, value) for a strict version. I suggest that the when function signature should be

 static Option<A> when<A>(bool test, Function0<A> value)

for cases where the value cannot be constructed if the predicate is false, or that there should be another method with such a signature. This is analogous to the existing Either.cond(pred, () => r, () => l).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions