Packages
gleam_stdlib
0.9.0
1.0.3
1.0.2
1.0.1
1.0.0
0.71.0
0.70.0
0.69.0
0.68.1
0.68.0
0.67.1
0.67.0
0.65.0
0.64.0
0.63.2
0.63.1
0.63.0
0.62.1
0.62.0
0.61.0
0.60.0
0.59.0
0.58.0
0.57.0
0.56.0
0.55.0
0.54.0
0.53.0
0.52.0
0.51.0
0.50.0
0.49.0
0.48.0
0.47.0
0.46.0
0.45.0
0.44.0
0.43.0
0.42.0
0.41.0
0.40.0
0.39.0
0.38.0
0.37.0
0.36.0
0.35.1
0.35.0
0.34.0
0.33.1
0.33.0
0.32.1
0.32.0
0.31.0
0.30.2
0.30.1
0.30.0
0.29.2
0.29.1
0.29.0
0.28.2
0.28.1
0.28.0
0.27.0
0.26.1
0.26.0
0.25.0
0.24.0
0.23.0
0.22.3
0.22.2
0.22.1
0.22.0
0.21.0
0.20.0
0.19.3
0.19.2
0.19.1
0.19.0
0.18.1
0.18.0
0.18.0-rc1
0.17.1
0.17.0
0.16.0
0.15.0
0.14.0
0.13.0
0.12.0
0.11.0
0.10.1
0.10.0
0.9.0
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.4.0-rc1
0.3.1
0.3.0
0.2.0
retired
A standard library for the Gleam programming language
Current section
Files
Jump to
Current section
Files
src/gleam/option.gleam
/// Option represents a value that may be present or not. Some means the value is
/// present, None means the value is not.
///
/// This is Gleam's alternative to having a value that could be Null, as is
/// possible in some other languages.
///
pub type Option(a) {
Some(a)
None
}
/// Check whether the option is a Some value.
///
/// ## Examples
///
/// > is_some(Some(1))
/// True
///
/// > is_some(None)
/// False
///
pub fn is_some(option: Option(a)) -> Bool {
option != None
}
/// Check whether the option is a None value.
///
/// ## Examples
///
/// > is_none(Some(1))
/// False
///
/// > is_none(None)
/// True
///
pub fn is_none(option: Option(a)) -> Bool {
option == None
}
/// 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")
///
pub fn to_result(option: Option(a), e) -> Result(a, e) {
case option {
Some(a) -> Ok(a)
_ -> Error(e)
}
}
/// Converts a Result type to an Option type
///
/// ## Examples
///
/// > from_result(Ok(1))
/// Some(1)
/// > from_result(Error"some_error"))
/// None
///
pub fn from_result(result: Result(a, e)) -> Option(a) {
case result {
Ok(a) -> Some(a)
_ -> None
}
}
/// Extract the value from an option, returning a default value if there is none.
///
/// ## Examples
///
/// > unwrap(Some(1), 0)
/// 1
///
/// > unwrap(None, 0)
/// 0
///
pub fn unwrap(option: Option(a), or default: a) -> a {
case option {
Some(x) -> x
None -> default
}
}