diff options
author | Ahmad Sattar <thehabbos007@gmail.com> | 2020-06-17 22:21:07 +0200 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2020-06-18 21:54:33 +0100 |
commit | a13164e370b17699797f616b9c8fd54a135ad490 (patch) | |
tree | e77214828832a0310d93dbf4425ecedd0defa528 /src | |
parent | 75a5d752341cef2e35ec82752ab9b34539dba2a4 (diff) | |
download | gleam_stdlib-a13164e370b17699797f616b9c8fd54a135ad490.tar.gz gleam_stdlib-a13164e370b17699797f616b9c8fd54a135ad490.zip |
Option flatten function
Diffstat (limited to 'src')
-rw-r--r-- | src/gleam/option.gleam | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/gleam/option.gleam b/src/gleam/option.gleam index 46327ed..9a2e479 100644 --- a/src/gleam/option.gleam +++ b/src/gleam/option.gleam @@ -106,3 +106,23 @@ pub fn map(over option: Option(a), with fun: fn(a) -> b) -> Option(b) { None -> None } } + +/// Merge a nested Option into a single layer. +/// +/// ## Examples +/// +/// > flatten(Some(Some(1))) +/// Some(1) +/// +/// > flatten(Some(None)) +/// None +/// +/// > flatten(None) +/// None +/// +pub fn flatten(option: Option(Option(a))) -> Option(a) { + case option { + Some(x) -> x + None -> None + } +} |