gleam/option
Types
Functions
pub fn flatten(option: Option(Option(a))) -> Option(a)
Merge a nested Option into a single layer.
Examples
> flatten(Some(Some(1)))
Some(1)
> flatten(Some(None))
None
> flatten(None)
None
pub fn from_result(result: Result(a, b)) -> Option(a)
Converts a Result type to an Option type
Examples
> from_result(Ok(1))
Some(1)
> from_result(Error"some_error"))
None
pub fn is_none(option: Option(a)) -> Bool
Check whether the option is a None value.
Examples
> is_none(Some(1))
False
> is_none(None)
True
pub fn is_some(option: Option(a)) -> Bool
Check whether the option is a Some value.
Examples
> is_some(Some(1))
True
> is_some(None)
False
pub fn map(
over option: Option(a),
with fun: fn(a) -> b,
) -> Option(b)
Update a value held within the Some of an Option by calling a given function on it.
If the option is a None rather than Some the function is not called and the option stays the same.
Examples
> map(over: Some(1), with: fn(x) { x + 1 })
Some(2)
> map(over: None, with: fn(x) { x + 1 })
None
pub fn or(first: Option(a), second: Option(a)) -> Option(a)
Return the first value if it is Some, otherwise return the second value.
Examples
> or(Some(1), Some(2))
Some(1)
> or(Some(1), None)
Some(1)
> or(None, Some(2))
Some(2)
> or(None, None)
None
pub fn then(
option: Option(a),
apply fun: fn(a) -> Option(b),
) -> Option(b)
Update a value held within the Some of an Option by calling a given function on it, where the given function also returns an Option. The two Options are then merged together into one Option.
If the Option is a None rather than Some the function is not called and the Option stays the same.
This function is the equivalent of calling map followed by flatten, and
it is useful for chaining together multiple functions that return Options.
Examples
> then(Some(1), fn(x) { Some(x + 1) })
Some(2)
> then(Some(1), fn(x) { Some(tuple("a", x)) })
Some(tuple("a", 1))
> then(Some(1), fn(x) { None })
None
> then(None, fn(x) { Some(x + 1) })
None
pub fn to_result(option: Option(a), e: b) -> Result(a, b)
Converts an Option type to a Result type
Examples
> to_result(Some(1), "some_error")
Ok(1)
> to_result(None, "some_error")
Error("some_error")