aboutsummaryrefslogtreecommitdiff
path: root/aoc-2020-gleam/src/days/day07.gleam
diff options
context:
space:
mode:
authorTomasz Chojnacki <tomaszchojnacki2001@gmail.com>2023-03-02 21:40:59 +0100
committerTomasz Chojnacki <tomaszchojnacki2001@gmail.com>2023-03-02 21:40:59 +0100
commit6c661db5b3e167d45554f7c5e4838dbc3bffa63a (patch)
tree6ba5eebddc1713f5bd4ee9fe740937a8031d151e /aoc-2020-gleam/src/days/day07.gleam
parent2ba7501d516afa4ab240faccefb6a3f72223598e (diff)
downloadgleam_aoc2020-6c661db5b3e167d45554f7c5e4838dbc3bffa63a.tar.gz
gleam_aoc2020-6c661db5b3e167d45554f7c5e4838dbc3bffa63a.zip
Refactor using constructs from Gleam v0.27
Diffstat (limited to 'aoc-2020-gleam/src/days/day07.gleam')
-rw-r--r--aoc-2020-gleam/src/days/day07.gleam10
1 files changed, 7 insertions, 3 deletions
diff --git a/aoc-2020-gleam/src/days/day07.gleam b/aoc-2020-gleam/src/days/day07.gleam
index 2e7c890..fb5949c 100644
--- a/aoc-2020-gleam/src/days/day07.gleam
+++ b/aoc-2020-gleam/src/days/day07.gleam
@@ -1,10 +1,12 @@
import gleam/io
+import gleam/int
import gleam/list
import gleam/pair
import gleam/result as res
import gleam/function as fun
import gleam/map.{Map}
import gleam/iterator.{Iterator} as iter
+import ext/genericx as genx
import ext/resultx as resx
import ext/iteratorx as iterx
import util/graph
@@ -85,16 +87,18 @@ fn part1(lines: List(String)) -> Int {
graph
|> map.keys
|> iter.from_list
- |> iter.filter(for: fn(bag) { bag != special_bag })
+ |> iter.filter(for: genx.different(_, than: special_bag))
|> iterx.count(satisfying: fn(start) {
start
|> graph.dfs(with: neighbours)
- |> iter.any(fn(bag) { bag == special_bag })
+ |> iter.any(satisfying: genx.equals(_, special_bag))
})
}
fn part2(lines: List(String)) -> Int {
- bag_count(of: special_bag, in: parse_graph(lines)) - 1
+ special_bag
+ |> bag_count(in: parse_graph(lines))
+ |> int.subtract(1)
}
pub fn run() -> Nil {