···
-
import gleam/int.{to_string}
-
import gleam/io.{println}
-
import gleam/list.{Continue, Stop, fold, fold_until}
-
import gleam/result.{unwrap}
-
import gleam/string.{split, trim}
-
import simplifile.{read}
FloorIndex(floor: Int, index: Int)
-
let input = read(from: "../input.txt") |> unwrap("") |> trim() |> split("")
-
// part 1 - get final floor
-
fold(input, 0, fn(fl, cur) {
-
// part 2 - get first time in the basement
-
|> fold_until(FloorIndex(0, 1), fn(fi, cur) {
-
True -> Stop(FloorIndex(new, fi.index))
-
False -> Continue(FloorIndex(new, fi.index + 1))
···
+
import gleam/list.{Continue, Stop, fold}
+
import simplifile as file
FloorIndex(floor: Int, index: Int)
+
let assert Ok(input) = file.read(from: "../input.txt")
+
let input = input |> string.trim() |> string.split("")
+
|> fold(0, fn(fl, cur) {
+
// part 2 - get first time in the basement
+
let FloorIndex(_, index) =
+
|> list.fold_until(FloorIndex(0, 1), fn(fi, cur) {
+
True -> Stop(FloorIndex(new, fi.index))
+
False -> Continue(FloorIndex(new, fi.index + 1))