diff options
author | Tomasz Chojnacki <tomaszchojnacki2001@gmail.com> | 2023-04-06 22:12:49 +0200 |
---|---|---|
committer | Tomasz Chojnacki <tomaszchojnacki2001@gmail.com> | 2023-04-06 22:12:49 +0200 |
commit | d784615b34eeba427bc107d0d0971ac6617cc966 (patch) | |
tree | 2dd074d692c1b1e3a60aff7206201e547926feda | |
parent | 76e1d24c9cb3f2461f4dca08271fa25f97e820b7 (diff) | |
download | gleam_aoc2020-d784615b34eeba427bc107d0d0971ac6617cc966.tar.gz gleam_aoc2020-d784615b34eeba427bc107d0d0971ac6617cc966.zip |
Reduce resx.assert_unwrap usage
-rw-r--r-- | aoc-2020-gleam/src/days/day03.gleam | 7 | ||||
-rw-r--r-- | aoc-2020-gleam/src/days/day05.gleam | 8 | ||||
-rw-r--r-- | aoc-2020-gleam/src/days/day08.gleam | 6 | ||||
-rw-r--r-- | aoc-2020-gleam/src/days/day10.gleam | 7 |
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]]) } |