Skip to content

Value should be lazy in Option.when #107

@otto-dev

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).

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