diff options
author | Louis Pilfold <louis@lpil.uk> | 2021-07-16 20:01:09 +0100 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2021-07-16 20:10:11 +0100 |
commit | ae5fb5c267af3d92a33b093bba5e61f0cd34f333 (patch) | |
tree | 4b5c385ec4cd1b6c0f56c7468b3262d182f86e2d /src | |
parent | 08ee11667c62bf416e7dcd8e314a7c8792168c2b (diff) | |
download | gleam_stdlib-ae5fb5c267af3d92a33b093bba5e61f0cd34f333.tar.gz gleam_stdlib-ae5fb5c267af3d92a33b093bba5e61f0cd34f333.zip |
JS pair module support
Diffstat (limited to 'src')
-rw-r--r-- | src/gleam/pair.gleam | 114 |
1 files changed, 56 insertions, 58 deletions
diff --git a/src/gleam/pair.gleam b/src/gleam/pair.gleam index 246ce8c..6143ee9 100644 --- a/src/gleam/pair.gleam +++ b/src/gleam/pair.gleam @@ -1,63 +1,61 @@ -if erlang { - /// Returns the first element in a pair. - /// - /// ## Examples - /// - /// > first(#(1, 2)) - /// 1 - /// - pub fn first(pair: #(a, b)) -> a { - let #(a, _) = pair - a - } +/// Returns the first element in a pair. +/// +/// ## Examples +/// +/// > first(#(1, 2)) +/// 1 +/// +pub fn first(pair: #(a, b)) -> a { + let #(a, _) = pair + a +} - /// Returns the second element in a pair. - /// - /// ## Examples - /// - /// > second(#(1, 2)) - /// 2 - /// - pub fn second(pair: #(a, b)) -> b { - let #(_, a) = pair - a - } +/// Returns the second element in a pair. +/// +/// ## Examples +/// +/// > second(#(1, 2)) +/// 2 +/// +pub fn second(pair: #(a, b)) -> b { + let #(_, a) = pair + a +} - /// Returns a new pair with the elements swapped. - /// - /// ## Examples - /// - /// > swap(#(1, 2)) - /// #(2, 1) - /// - pub fn swap(pair: #(a, b)) -> #(b, a) { - let #(a, b) = pair - #(b, a) - } +/// Returns a new pair with the elements swapped. +/// +/// ## Examples +/// +/// > swap(#(1, 2)) +/// #(2, 1) +/// +pub fn swap(pair: #(a, b)) -> #(b, a) { + let #(a, b) = pair + #(b, a) +} - /// Returns a new pair with the first element having had `with` applied to - /// it. - /// - /// ## Examples - /// - /// > #(1, 2) |> map_first(fn(n) { n * 2 }) - /// 2 - /// - pub fn map_first(of pair: #(a, b), with fun: fn(a) -> c) -> #(c, b) { - let #(a, b) = pair - #(fun(a), b) - } +/// Returns a new pair with the first element having had `with` applied to +/// it. +/// +/// ## Examples +/// +/// > #(1, 2) |> map_first(fn(n) { n * 2 }) +/// 2 +/// +pub fn map_first(of pair: #(a, b), with fun: fn(a) -> c) -> #(c, b) { + let #(a, b) = pair + #(fun(a), b) +} - /// Returns a new pair with the second element having had `with` applied to - /// it. - /// - /// ## Examples - /// - /// > #(1, 2) |> map_second(fn(n) { n * 2 }) - /// 4 - /// - pub fn map_second(of pair: #(a, b), with fun: fn(b) -> c) -> #(a, c) { - let #(a, b) = pair - #(a, fun(b)) - } +/// Returns a new pair with the second element having had `with` applied to +/// it. +/// +/// ## Examples +/// +/// > #(1, 2) |> map_second(fn(n) { n * 2 }) +/// 4 +/// +pub fn map_second(of pair: #(a, b), with fun: fn(b) -> c) -> #(a, c) { + let #(a, b) = pair + #(a, fun(b)) } |