From 7a5f1983f9189422ad5e12afde11d11bec30a3f1 Mon Sep 17 00:00:00 2001 From: Tomasz Chojnacki Date: Fri, 22 Dec 2023 18:31:14 +0100 Subject: Solve part 1 of day 20 --- aoc-2020-gleam/src/util/grid.gleam | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 aoc-2020-gleam/src/util/grid.gleam (limited to 'aoc-2020-gleam/src/util/grid.gleam') diff --git a/aoc-2020-gleam/src/util/grid.gleam b/aoc-2020-gleam/src/util/grid.gleam new file mode 100644 index 0000000..a091be5 --- /dev/null +++ b/aoc-2020-gleam/src/util/grid.gleam @@ -0,0 +1,22 @@ +import gleam/list +import gleam/string as str +import gleam/set.{type Set} + +pub fn parse_grid(lines: String, with constructor: fn(Int, Int) -> a) -> Set(a) { + lines + |> str.split("\n") + |> list.index_map(with: fn(line, y) { + line + |> str.to_graphemes + |> list.index_map(with: fn(grapheme, x) { + case grapheme { + "#" -> [constructor(x, y)] + "." -> [] + _ -> panic + } + }) + |> list.flatten + }) + |> list.flatten + |> set.from_list +} -- cgit v1.2.3