diff options
author | Tomasz Chojnacki <tomaszchojnacki2001@gmail.com> | 2023-12-21 22:09:25 +0100 |
---|---|---|
committer | Tomasz Chojnacki <tomaszchojnacki2001@gmail.com> | 2023-12-21 22:09:25 +0100 |
commit | d8e183f02f67522d94deafa328e19b3081ca41be (patch) | |
tree | 4617cc4fec15365cdcdfeb594b02432937d6c946 /aoc-2020-gleam/src/days/day13.gleam | |
parent | 02598d252c0e9093384ec53e46445df1a783feda (diff) | |
download | gleam_aoc2020-d8e183f02f67522d94deafa328e19b3081ca41be.tar.gz gleam_aoc2020-d8e183f02f67522d94deafa328e19b3081ca41be.zip |
Update to newest Gleam version
Diffstat (limited to 'aoc-2020-gleam/src/days/day13.gleam')
-rw-r--r-- | aoc-2020-gleam/src/days/day13.gleam | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/aoc-2020-gleam/src/days/day13.gleam b/aoc-2020-gleam/src/days/day13.gleam index c95cd42..a7307dd 100644 --- a/aoc-2020-gleam/src/days/day13.gleam +++ b/aoc-2020-gleam/src/days/day13.gleam @@ -71,7 +71,7 @@ fn part2(input: String) -> Int { |> iter.from_list |> iter.index |> iter.flat_map(fn(entry) { - let #(i, b) = entry + let #(b, i) = entry case b { Line(line) -> iter.single(#(line, i)) Any -> iter.empty() @@ -82,28 +82,25 @@ fn part2(input: String) -> Int { let assert [#(timestamp, _), ..] = buses buses - |> list.fold( - from: #(timestamp, timestamp), - with: fn(prev, entry) { - let #(timestamp, period) = prev - let #(id, i) = entry + |> list.fold(from: #(timestamp, timestamp), with: fn(prev, entry) { + let #(timestamp, period) = prev + let #(id, i) = entry - let assert Ok(timestamp) = - timestamp - |> iterx.unfold_infinitely(with: int.add(_, period)) - |> iter.find(one_that: fn(t) { { t + i } % id == 0 }) - let period = intx.lcm(period, id) + let assert Ok(timestamp) = + timestamp + |> iterx.unfold_infinitely(with: int.add(_, period)) + |> iter.find(one_that: fn(t) { { t + i } % id == 0 }) + let period = intx.lcm(period, id) - #(timestamp, period) - }, - ) + #(timestamp, period) + }) |> pair.first } pub fn main() -> Nil { - let test = input_util.read_text("test13") - let assert 295 = part1(test) - let assert 1_068_781 = part2(test) + let testing = input_util.read_text("test13") + let assert 295 = part1(testing) + let assert 1_068_781 = part2(testing) let input = input_util.read_text("day13") io.debug(part1(input)) |