aboutsummaryrefslogtreecommitdiff
path: root/aoc-2020-gleam
diff options
context:
space:
mode:
authorTomasz Chojnacki <tomaszchojnacki2001@gmail.com>2023-04-06 22:12:49 +0200
committerTomasz Chojnacki <tomaszchojnacki2001@gmail.com>2023-04-06 22:12:49 +0200
commitd784615b34eeba427bc107d0d0971ac6617cc966 (patch)
tree2dd074d692c1b1e3a60aff7206201e547926feda /aoc-2020-gleam
parent76e1d24c9cb3f2461f4dca08271fa25f97e820b7 (diff)
downloadgleam_aoc2020-d784615b34eeba427bc107d0d0971ac6617cc966.tar.gz
gleam_aoc2020-d784615b34eeba427bc107d0d0971ac6617cc966.zip
Reduce resx.assert_unwrap usage
Diffstat (limited to 'aoc-2020-gleam')
-rw-r--r--aoc-2020-gleam/src/days/day03.gleam7
-rw-r--r--aoc-2020-gleam/src/days/day05.gleam8
-rw-r--r--aoc-2020-gleam/src/days/day08.gleam6
-rw-r--r--aoc-2020-gleam/src/days/day10.gleam7
4 files changed, 13 insertions, 15 deletions
diff --git a/aoc-2020-gleam/src/days/day03.gleam b/aoc-2020-gleam/src/days/day03.gleam
index 0778eea..5639fd6 100644
--- a/aoc-2020-gleam/src/days/day03.gleam
+++ b/aoc-2020-gleam/src/days/day03.gleam
@@ -1,12 +1,12 @@
import gleam/list
import gleam/io
import gleam/int
+import gleam/result as res
import gleam/string as str
import gleam/function as fun
import gleam/iterator as iter
import gleam/set.{Set}
import ext/intx
-import ext/resultx as resx
import ext/iteratorx as iterx
import util/input_util
import util/pos.{Pos}
@@ -42,11 +42,10 @@ fn parse_area(from text: String) -> Area {
|> set.union(prev)
},
)
- let cycle =
+ let assert Ok(cycle) =
lines
|> list.first
- |> resx.assert_unwrap
- |> str.length
+ |> res.map(with: str.length)
let height = list.length(lines)
Area(trees, cycle, height)
diff --git a/aoc-2020-gleam/src/days/day05.gleam b/aoc-2020-gleam/src/days/day05.gleam
index 59211fc..8d37736 100644
--- a/aoc-2020-gleam/src/days/day05.gleam
+++ b/aoc-2020-gleam/src/days/day05.gleam
@@ -36,10 +36,10 @@ fn part2(lines: List(String)) -> Int {
let occupied = set.contains(in: seat_ids, this: _)
- iter.find(
- in: iter.range(from: 1, to: 1023),
- one_that: fn(id) { occupied(id - 1) && !occupied(id) && occupied(id + 1) },
- )
+ iter.range(from: 1, to: 1023)
+ |> iter.find(one_that: fn(id) {
+ occupied(id - 1) && !occupied(id) && occupied(id + 1)
+ })
|> resx.assert_unwrap
}
diff --git a/aoc-2020-gleam/src/days/day08.gleam b/aoc-2020-gleam/src/days/day08.gleam
index 3a0aa4f..a4ebacd 100644
--- a/aoc-2020-gleam/src/days/day08.gleam
+++ b/aoc-2020-gleam/src/days/day08.gleam
@@ -2,6 +2,7 @@ import gleam/io
import gleam/int
import gleam/list
import gleam/bool
+import gleam/result as res
import gleam/set.{Set}
import gleam/iterator.{Iterator} as iter
import gleam/option.{None, Option, Some} as opt
@@ -140,13 +141,12 @@ fn part1(lines: List(String)) -> Int {
}
fn part2(lines: List(String)) -> Int {
- let assert Termination(acc) =
+ let assert Ok(Termination(acc)) =
lines
|> parse_program
|> all_program_mutations
|> iter.find(one_that: halts)
- |> resx.assert_unwrap
- |> execution_result
+ |> res.map(with: execution_result)
acc
}
diff --git a/aoc-2020-gleam/src/days/day10.gleam b/aoc-2020-gleam/src/days/day10.gleam
index 86c0137..d7cadd6 100644
--- a/aoc-2020-gleam/src/days/day10.gleam
+++ b/aoc-2020-gleam/src/days/day10.gleam
@@ -2,10 +2,10 @@ import gleam/io
import gleam/int
import gleam/list
import gleam/bool
+import gleam/result as res
import ext/listx
import ext/pairx
import ext/genericx as genx
-import ext/resultx as resx
import util/input_util
import util/cache.{Cache}
@@ -16,11 +16,10 @@ const max_increase = 3
fn process_adapters(numbers: List(Int)) -> List(Int) {
let numbers = list.sort(numbers, by: int.compare)
- let device_joltage =
+ let assert Ok(device_joltage) =
numbers
|> list.last
- |> resx.assert_unwrap
- |> int.add(max_increase)
+ |> res.map(with: int.add(_, max_increase))
list.flatten([[outlet_joltage], numbers, [device_joltage]])
}