diff options
author | Tomasz Chojnacki <tomaszchojnacki2001@gmail.com> | 2023-02-21 22:14:11 +0100 |
---|---|---|
committer | Tomasz Chojnacki <tomaszchojnacki2001@gmail.com> | 2023-02-21 22:14:11 +0100 |
commit | 6eaf758850feebd8cfc97c3ead2de2625465a326 (patch) | |
tree | c77a254f832fbfc2299cf74133891df69d8f0397 /aoc-2020-gleam | |
parent | 16509ecd4f31ef421a464a98c8e0ea73bb5cb111 (diff) | |
download | gleam_aoc2020-6eaf758850feebd8cfc97c3ead2de2625465a326.tar.gz gleam_aoc2020-6eaf758850feebd8cfc97c3ead2de2625465a326.zip |
Minor refactorings
Diffstat (limited to 'aoc-2020-gleam')
-rw-r--r-- | aoc-2020-gleam/src/days/day01.gleam | 2 | ||||
-rw-r--r-- | aoc-2020-gleam/src/days/day04.gleam | 7 | ||||
-rw-r--r-- | aoc-2020-gleam/src/ext/intx.gleam | 8 | ||||
-rw-r--r-- | aoc-2020-gleam/src/util/input_util.gleam | 12 |
4 files changed, 12 insertions, 17 deletions
diff --git a/aoc-2020-gleam/src/days/day01.gleam b/aoc-2020-gleam/src/days/day01.gleam index 6e75826..ac46581 100644 --- a/aoc-2020-gleam/src/days/day01.gleam +++ b/aoc-2020-gleam/src/days/day01.gleam @@ -10,7 +10,7 @@ fn solve(numbers: List(Int), n: Int) -> Int { |> list.combinations(by: n) |> list.find(one_that: fn(p) { int.sum(p) == 2020 }) |> result.map(with: int.product) - |> resultx.force_unwrap() + |> resultx.force_unwrap } fn part1(numbers: List(Int)) -> Int { diff --git a/aoc-2020-gleam/src/days/day04.gleam b/aoc-2020-gleam/src/days/day04.gleam index 53abb0c..fa165ae 100644 --- a/aoc-2020-gleam/src/days/day04.gleam +++ b/aoc-2020-gleam/src/days/day04.gleam @@ -109,8 +109,11 @@ fn is_valid2(passport: Passport) -> Bool { let #(key, parser) = validator passport.fields |> map.get(key) - |> resultx.force_unwrap - |> p.parse_entire(with: parser) + |> result.then(apply: fn(value) { + value + |> p.parse_entire(with: parser) + |> result.replace_error(Nil) + }) |> result.is_ok }, ) diff --git a/aoc-2020-gleam/src/ext/intx.gleam b/aoc-2020-gleam/src/ext/intx.gleam deleted file mode 100644 index 3cfe144..0000000 --- a/aoc-2020-gleam/src/ext/intx.gleam +++ /dev/null @@ -1,8 +0,0 @@ -import gleam/int -import ext/resultx - -pub fn force_parse(string: String) -> Int { - string - |> int.parse() - |> resultx.force_unwrap() -} diff --git a/aoc-2020-gleam/src/util/input_util.gleam b/aoc-2020-gleam/src/util/input_util.gleam index 2589a7d..fbe2d17 100644 --- a/aoc-2020-gleam/src/util/input_util.gleam +++ b/aoc-2020-gleam/src/util/input_util.gleam @@ -1,20 +1,20 @@ +import gleam/int import gleam/list import gleam/string import gleam/function import gleam/bool import gleam/erlang/file -import ext/intx import ext/resultx pub fn read_text(filename: String) -> String { "data/" <> filename <> ".txt" - |> file.read() - |> resultx.force_unwrap() + |> file.read + |> resultx.force_unwrap } pub fn read_lines(filename: String) -> List(String) { filename - |> read_text() + |> read_text |> string.split(on: "\n") |> list.map(with: string.trim) |> list.filter(for: function.compose(string.is_empty, bool.negate)) @@ -22,6 +22,6 @@ pub fn read_lines(filename: String) -> List(String) { pub fn read_numbers(filename: String) -> List(Int) { filename - |> read_lines() - |> list.map(with: intx.force_parse) + |> read_lines + |> list.map(with: function.compose(int.parse, resultx.force_unwrap)) } |