aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouis Pilfold <louis@lpil.uk>2019-10-23 21:59:54 +0100
committerLouis Pilfold <louis@lpil.uk>2019-10-23 22:17:49 +0100
commit1fd3d745cf6baa4cbaf3469f963f17fa6f5420cd (patch)
treecad5fe9b84e3c0041e1b3d302c5f19b2d00a851f
parentedaa30bda6520be7940e8c8fb8d0ec95947201e0 (diff)
downloadgleam_stdlib-1fd3d745cf6baa4cbaf3469f963f17fa6f5420cd.tar.gz
gleam_stdlib-1fd3d745cf6baa4cbaf3469f963f17fa6f5420cd.zip
Update stdlib to use multi-subject case
-rw-r--r--gen/src/gleam@list.erl8
-rw-r--r--gen/src/gleam@order.erl6
-rw-r--r--src/gleam/bool.gleam10
-rw-r--r--src/gleam/list.gleam18
-rw-r--r--src/gleam/order.gleam30
5 files changed, 36 insertions, 36 deletions
diff --git a/gen/src/gleam@list.erl b/gen/src/gleam@list.erl
index 291bd7f..4e3a60d 100644
--- a/gen/src/gleam@list.erl
+++ b/gen/src/gleam@list.erl
@@ -214,16 +214,16 @@ any(List, F) ->
end
end.
-zip(L1, L2) ->
- case {L1, L2} of
+zip(Xs, Ys) ->
+ case {Xs, Ys} of
{[], _} ->
[];
{_, []} ->
[];
- {[X1 | Rest1], [X2 | Rest2]} ->
- [{X1, X2} | zip(Rest1, Rest2)]
+ {[X | Xs1], [Y | Ys1]} ->
+ [{X, Y} | zip(Xs1, Ys1)]
end.
strict_zip(L1, L2) ->
diff --git a/gen/src/gleam@order.erl b/gen/src/gleam@order.erl
index 9e259ed..45e6474 100644
--- a/gen/src/gleam@order.erl
+++ b/gen/src/gleam@order.erl
@@ -44,7 +44,7 @@ compare(A, B) ->
{eq, gt} ->
lt;
- _ ->
+ {_, _} ->
gt
end.
@@ -56,7 +56,7 @@ max(A, B) ->
{eq, lt} ->
eq;
- _ ->
+ {_, _} ->
B
end.
@@ -68,6 +68,6 @@ min(A, B) ->
{eq, gt} ->
eq;
- _ ->
+ {_, _} ->
B
end.
diff --git a/src/gleam/bool.gleam b/src/gleam/bool.gleam
index ff26a9b..e1913c0 100644
--- a/src/gleam/bool.gleam
+++ b/src/gleam/bool.gleam
@@ -9,11 +9,11 @@ pub fn negate(bool) {
}
pub fn compare(a, b) {
- case pair.Pair(a, b) {
- | pair.Pair(True, True) -> order.Eq
- | pair.Pair(True, False) -> order.Gt
- | pair.Pair(False, False) -> order.Eq
- | pair.Pair(False, True) -> order.Lt
+ case a, b {
+ | True, True -> order.Eq
+ | True, False -> order.Gt
+ | False, False -> order.Eq
+ | False, True -> order.Lt
}
}
diff --git a/src/gleam/list.gleam b/src/gleam/list.gleam
index ecc2a6c..f6b00a3 100644
--- a/src/gleam/list.gleam
+++ b/src/gleam/list.gleam
@@ -181,11 +181,11 @@ pub fn any(list, f) {
}
}
-pub fn zip(l1, l2) {
- case pair.Pair(l1, l2) {
- | pair.Pair([], _) -> []
- | pair.Pair(_, []) -> []
- | pair.Pair([x1 | rest1], [x2 | rest2]) -> [ pair.Pair(x1, x2) | zip(rest1, rest2) ]
+pub fn zip(xs, ys) {
+ case xs, ys {
+ | [], _ -> []
+ | _, [] -> []
+ | [x | xs], [y | ys] -> [ pair.Pair(x, y) | zip(xs, ys) ]
}
}
@@ -227,10 +227,10 @@ pub fn unique(list) {
}
fn merge_sort(a, b, compare) {
- case pair.Pair(a, b) {
- | pair.Pair([], _) -> b
- | pair.Pair(_, []) -> a
- | pair.Pair([ax | ar], [bx | br]) ->
+ case a, b {
+ | [], _ -> b
+ | _, [] -> a
+ | [ax | ar], [bx | br] ->
case compare(ax, bx) {
| order.Lt -> [ax | merge_sort(ar, b, compare)]
| _ -> [bx | merge_sort(a, br, compare)]
diff --git a/src/gleam/order.gleam b/src/gleam/order.gleam
index 6886991..9aa04fb 100644
--- a/src/gleam/order.gleam
+++ b/src/gleam/order.gleam
@@ -23,28 +23,28 @@ pub fn to_int(order) {
}
pub fn compare(a, b) {
- case pair.Pair(a, b) {
- | pair.Pair(Lt, Lt) -> Eq
- | pair.Pair(Lt, _) -> Lt
- | pair.Pair(Eq, Eq) -> Eq
- | pair.Pair(Gt, Gt) -> Eq
- | pair.Pair(Eq, Gt) -> Lt
- | _ -> Gt
+ case a, b {
+ | Lt, Lt -> Eq
+ | Lt, _ -> Lt
+ | Eq, Eq -> Eq
+ | Gt, Gt -> Eq
+ | Eq, Gt -> Lt
+ | _, _ -> Gt
}
}
pub fn max(a, b) {
- case pair.Pair(a, b) {
- | pair.Pair(Gt, _) -> Gt
- | pair.Pair(Eq, Lt) -> Eq
- | _ -> b
+ case a, b {
+ | Gt, _ -> Gt
+ | Eq, Lt -> Eq
+ | _, _ -> b
}
}
pub fn min(a, b) {
- case pair.Pair(a, b) {
- | pair.Pair(Lt, _) -> Lt
- | pair.Pair(Eq, Gt) -> Eq
- | _ -> b
+ case a, b {
+ | Lt, _ -> Lt
+ | Eq, Gt -> Eq
+ | _, _ -> b
}
}