aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouis Pilfold <louis@lpil.uk>2020-02-28 20:32:23 +0000
committerLouis Pilfold <louis@lpil.uk>2020-03-03 11:44:08 +0000
commite59c44f8ecf744a6b6d561e4e5fd4f7dc0b29355 (patch)
tree2a96fc6851b06bf7dc91a39e68462933960ab2dc
parent1a13f86ed842dbf771d84564f76e7400c2a81f89 (diff)
downloadgleam_stdlib-e59c44f8ecf744a6b6d561e4e5fd4f7dc0b29355.tar.gz
gleam_stdlib-e59c44f8ecf744a6b6d561e4e5fd4f7dc0b29355.zip
Use new case expression features
-rw-r--r--gen/src/gleam@list.erl10
-rw-r--r--gen/src/gleam@order.erl8
-rw-r--r--src/gleam/float.gleam8
-rw-r--r--src/gleam/int.gleam8
-rw-r--r--src/gleam/list.gleam11
-rw-r--r--src/gleam/order.gleam7
6 files changed, 21 insertions, 31 deletions
diff --git a/gen/src/gleam@list.erl b/gen/src/gleam@list.erl
index 3e6d01d..57789ff 100644
--- a/gen/src/gleam@list.erl
+++ b/gen/src/gleam@list.erl
@@ -253,13 +253,13 @@ strict_zip(L1, L2) ->
intersperse(List, Elem) ->
case List of
[] ->
- [];
+ List;
- [X] ->
- [X];
+ [_] ->
+ List;
- [X1 | Rest] ->
- [X1, Elem | intersperse(Rest, Elem)]
+ [X | Rest] ->
+ [X, Elem | intersperse(Rest, Elem)]
end.
at(List, Index) ->
diff --git a/gen/src/gleam@order.erl b/gen/src/gleam@order.erl
index 45e6474..6306636 100644
--- a/gen/src/gleam@order.erl
+++ b/gen/src/gleam@order.erl
@@ -29,18 +29,12 @@ to_int(Order) ->
compare(A, B) ->
case {A, B} of
- {lt, lt} ->
+ {X, Y} when X =:= Y ->
eq;
{lt, _} ->
lt;
- {eq, eq} ->
- eq;
-
- {gt, gt} ->
- eq;
-
{eq, gt} ->
lt;
diff --git a/src/gleam/float.gleam b/src/gleam/float.gleam
index 653a4d6..1eda66b 100644
--- a/src/gleam/float.gleam
+++ b/src/gleam/float.gleam
@@ -15,10 +15,10 @@ pub fn compare(a: Float, b: Float) -> Order {
case a == b {
True -> order.Eq
False ->
- case a <. b {
- True -> order.Lt
- False -> order.Gt
- }
+ case a <. b {
+ True -> order.Lt
+ False -> order.Gt
+ }
}
}
diff --git a/src/gleam/int.gleam b/src/gleam/int.gleam
index 7fd7fa6..a638602 100644
--- a/src/gleam/int.gleam
+++ b/src/gleam/int.gleam
@@ -11,10 +11,10 @@ pub fn compare(a: Int, b: Int) -> Order {
case a == b {
True -> order.Eq
False ->
- case a < b {
- True -> order.Lt
- False -> order.Gt
- }
+ case a < b {
+ True -> order.Lt
+ False -> order.Gt
+ }
}
}
diff --git a/src/gleam/list.gleam b/src/gleam/list.gleam
index eaa0b23..6ea102e 100644
--- a/src/gleam/list.gleam
+++ b/src/gleam/list.gleam
@@ -235,8 +235,7 @@ pub fn strict_zip(l1: List(a), l2: List(b)) -> Result(List(tuple(a, b)), LengthM
pub fn intersperse(list: List(a), with elem: a) -> List(a) {
case list {
- [] -> []
- [x | []] -> [x]
+ [] | [_] -> list
[x | rest] -> [x | [elem | intersperse(rest, elem)]]
}
}
@@ -248,10 +247,10 @@ pub fn at(in list: List(a), get index: Int) -> Option(a) {
case list {
[] -> result.none()
[x | rest] ->
- case index == 0 {
- True -> Ok(x)
- False -> at(rest, index - 1)
- }
+ case index == 0 {
+ True -> Ok(x)
+ False -> at(rest, index - 1)
+ }
}
}
}
diff --git a/src/gleam/order.gleam b/src/gleam/order.gleam
index bc0aaeb..1c5a417 100644
--- a/src/gleam/order.gleam
+++ b/src/gleam/order.gleam
@@ -22,11 +22,8 @@ pub fn to_int(order: Order) -> Int {
pub fn compare(a: Order, b: Order) -> Order {
case a, b {
- Lt, Lt -> Eq
- Lt, _ -> Lt
- Eq, Eq -> Eq
- Gt, Gt -> Eq
- Eq, Gt -> Lt
+ x, y if x == y -> Eq
+ Lt, _ | Eq, Gt -> Lt
_, _ -> Gt
}
}