aboutsummaryrefslogtreecommitdiff
path: root/aoc-2020-gleam/src/util/input_util.gleam
diff options
context:
space:
mode:
authorTomasz Chojnacki <tomaszchojnacki2001@gmail.com>2023-01-27 16:19:57 +0100
committerTomasz Chojnacki <tomaszchojnacki2001@gmail.com>2023-01-27 16:19:57 +0100
commit96d397d8e184606315ef0e08273cea4f3fcd3f5d (patch)
tree2c52afd9b71a4025bcb7a9a554ba9098b0453f71 /aoc-2020-gleam/src/util/input_util.gleam
parent29c49417f89169c03ca05724da3c88880d3a1a17 (diff)
downloadgleam_aoc2020-96d397d8e184606315ef0e08273cea4f3fcd3f5d.tar.gz
gleam_aoc2020-96d397d8e184606315ef0e08273cea4f3fcd3f5d.zip
Solve day 1 of 2020 in Gleam
Diffstat (limited to 'aoc-2020-gleam/src/util/input_util.gleam')
-rw-r--r--aoc-2020-gleam/src/util/input_util.gleam26
1 files changed, 26 insertions, 0 deletions
diff --git a/aoc-2020-gleam/src/util/input_util.gleam b/aoc-2020-gleam/src/util/input_util.gleam
new file mode 100644
index 0000000..3e6b076
--- /dev/null
+++ b/aoc-2020-gleam/src/util/input_util.gleam
@@ -0,0 +1,26 @@
+import gleam/list
+import gleam/string
+import gleam/erlang/file
+import ext/intx
+import ext/stringx
+import ext/resultx
+
+pub fn read_text(filename: String) -> String {
+ "data/" <> filename <> ".txt"
+ |> file.read()
+ |> resultx.force_unwrap()
+}
+
+pub fn read_lines(filename: String) -> List(String) {
+ filename
+ |> read_text()
+ |> string.split(on: "\n")
+ |> list.map(with: string.trim)
+ |> list.filter(for: stringx.is_not_empty)
+}
+
+pub fn read_numbers(filename: String) -> List(Int) {
+ filename
+ |> read_lines()
+ |> list.map(with: intx.force_parse)
+}