+15
-22
src/days/day01.gleam
+15
-22
src/days/day01.gleam
···
1
1
import gleam/int
2
2
import gleam/io
3
3
import gleam/list
4
+
import gleam/result
4
5
import gleam/string
5
6
6
7
pub fn part1(input: String) -> String {
7
-
int.to_string(solve_claude(input))
8
-
}
9
-
10
-
pub fn part2(input: String) -> String {
11
-
// TODO: Implement part 2
12
-
"Not implemented"
13
-
}
14
-
15
-
pub fn solve(input: String) -> Nil {
16
-
io.println("Day 1:")
17
-
io.println("Part 1: " <> part1(input))
18
-
io.println("Part 2: " <> part2(input))
19
-
}
20
-
21
-
pub fn solve_claude(input: String) -> Int {
22
8
let rotations = parse_input(input)
23
9
let #(_, zero_count) =
24
10
list.fold(rotations, #(50, 0), fn(state, rotation) {
···
30
16
}
31
17
#(new_position, new_count)
32
18
})
33
-
zero_count
19
+
int.to_string(zero_count)
20
+
}
21
+
22
+
pub fn part2(_input: String) -> String {
23
+
// TODO: Implement part 2
24
+
"Not implemented"
25
+
}
26
+
27
+
pub fn solve(input: String) -> Nil {
28
+
io.println("Day 1:")
29
+
io.println("Part 1: " <> part1(input))
30
+
io.println("Part 2: " <> part2(input))
34
31
}
35
32
36
33
fn parse_input(input: String) -> List(#(String, Int)) {
···
59
56
"R" -> position + distance
60
57
_ -> position
61
58
}
62
-
// Handle wrapping around 0-99
63
-
let wrapped = new_position % 100
64
-
case wrapped < 0 {
65
-
True -> wrapped + 100
66
-
False -> wrapped
67
-
}
59
+
60
+
int.modulo(new_position, 100) |> result.unwrap(new_position)
68
61
}
+2
-3
src/days/day02.gleam
+2
-3
src/days/day02.gleam
···
1
1
import gleam/io
2
-
import gleam/string
3
2
4
-
pub fn part1(input: String) -> String {
3
+
pub fn part1(_input: String) -> String {
5
4
// TODO: Implement part 1
6
5
"Not implemented"
7
6
}
8
7
9
-
pub fn part2(input: String) -> String {
8
+
pub fn part2(_input: String) -> String {
10
9
// TODO: Implement part 2
11
10
"Not implemented"
12
11
}
+2
-3
src/days/day03.gleam
+2
-3
src/days/day03.gleam
···
1
1
import gleam/io
2
-
import gleam/string
3
2
4
-
pub fn part1(input: String) -> String {
3
+
pub fn part1(_input: String) -> String {
5
4
// TODO: Implement part 1
6
5
"Not implemented"
7
6
}
8
7
9
-
pub fn part2(input: String) -> String {
8
+
pub fn part2(_input: String) -> String {
10
9
// TODO: Implement part 2
11
10
"Not implemented"
12
11
}
+2
-3
src/days/day04.gleam
+2
-3
src/days/day04.gleam
···
1
1
import gleam/io
2
-
import gleam/string
3
2
4
-
pub fn part1(input: String) -> String {
3
+
pub fn part1(_input: String) -> String {
5
4
// TODO: Implement part 1
6
5
"Not implemented"
7
6
}
8
7
9
-
pub fn part2(input: String) -> String {
8
+
pub fn part2(_input: String) -> String {
10
9
// TODO: Implement part 2
11
10
"Not implemented"
12
11
}
+2
-3
src/days/day05.gleam
+2
-3
src/days/day05.gleam
···
1
1
import gleam/io
2
-
import gleam/string
3
2
4
-
pub fn part1(input: String) -> String {
3
+
pub fn part1(_input: String) -> String {
5
4
// TODO: Implement part 1
6
5
"Not implemented"
7
6
}
8
7
9
-
pub fn part2(input: String) -> String {
8
+
pub fn part2(_input: String) -> String {
10
9
// TODO: Implement part 2
11
10
"Not implemented"
12
11
}
+2
-3
src/days/day06.gleam
+2
-3
src/days/day06.gleam
···
1
1
import gleam/io
2
-
import gleam/string
3
2
4
-
pub fn part1(input: String) -> String {
3
+
pub fn part1(_input: String) -> String {
5
4
// TODO: Implement part 1
6
5
"Not implemented"
7
6
}
8
7
9
-
pub fn part2(input: String) -> String {
8
+
pub fn part2(_input: String) -> String {
10
9
// TODO: Implement part 2
11
10
"Not implemented"
12
11
}
+2
-3
src/days/day07.gleam
+2
-3
src/days/day07.gleam
···
1
1
import gleam/io
2
-
import gleam/string
3
2
4
-
pub fn part1(input: String) -> String {
3
+
pub fn part1(_input: String) -> String {
5
4
// TODO: Implement part 1
6
5
"Not implemented"
7
6
}
8
7
9
-
pub fn part2(input: String) -> String {
8
+
pub fn part2(_input: String) -> String {
10
9
// TODO: Implement part 2
11
10
"Not implemented"
12
11
}
+2
-3
src/days/day08.gleam
+2
-3
src/days/day08.gleam
···
1
1
import gleam/io
2
-
import gleam/string
3
2
4
-
pub fn part1(input: String) -> String {
3
+
pub fn part1(_input: String) -> String {
5
4
// TODO: Implement part 1
6
5
"Not implemented"
7
6
}
8
7
9
-
pub fn part2(input: String) -> String {
8
+
pub fn part2(_input: String) -> String {
10
9
// TODO: Implement part 2
11
10
"Not implemented"
12
11
}
+2
-3
src/days/day09.gleam
+2
-3
src/days/day09.gleam
···
1
1
import gleam/io
2
-
import gleam/string
3
2
4
-
pub fn part1(input: String) -> String {
3
+
pub fn part1(_input: String) -> String {
5
4
// TODO: Implement part 1
6
5
"Not implemented"
7
6
}
8
7
9
-
pub fn part2(input: String) -> String {
8
+
pub fn part2(_input: String) -> String {
10
9
// TODO: Implement part 2
11
10
"Not implemented"
12
11
}
+2
-3
src/days/day10.gleam
+2
-3
src/days/day10.gleam
···
1
1
import gleam/io
2
-
import gleam/string
3
2
4
-
pub fn part1(input: String) -> String {
3
+
pub fn part1(_input: String) -> String {
5
4
// TODO: Implement part 1
6
5
"Not implemented"
7
6
}
8
7
9
-
pub fn part2(input: String) -> String {
8
+
pub fn part2(_input: String) -> String {
10
9
// TODO: Implement part 2
11
10
"Not implemented"
12
11
}
+2
-3
src/days/day11.gleam
+2
-3
src/days/day11.gleam
···
1
1
import gleam/io
2
-
import gleam/string
3
2
4
-
pub fn part1(input: String) -> String {
3
+
pub fn part1(_input: String) -> String {
5
4
// TODO: Implement part 1
6
5
"Not implemented"
7
6
}
8
7
9
-
pub fn part2(input: String) -> String {
8
+
pub fn part2(_input: String) -> String {
10
9
// TODO: Implement part 2
11
10
"Not implemented"
12
11
}
+2
-3
src/days/day12.gleam
+2
-3
src/days/day12.gleam
···
1
1
import gleam/io
2
-
import gleam/string
3
2
4
-
pub fn part1(input: String) -> String {
3
+
pub fn part1(_input: String) -> String {
5
4
// TODO: Implement part 1
6
5
"Not implemented"
7
6
}
8
7
9
-
pub fn part2(input: String) -> String {
8
+
pub fn part2(_input: String) -> String {
10
9
// TODO: Implement part 2
11
10
"Not implemented"
12
11
}
+2
-3
src/days/day13.gleam
+2
-3
src/days/day13.gleam
···
1
1
import gleam/io
2
-
import gleam/string
3
2
4
-
pub fn part1(input: String) -> String {
3
+
pub fn part1(_input: String) -> String {
5
4
// TODO: Implement part 1
6
5
"Not implemented"
7
6
}
8
7
9
-
pub fn part2(input: String) -> String {
8
+
pub fn part2(_input: String) -> String {
10
9
// TODO: Implement part 2
11
10
"Not implemented"
12
11
}
+2
-3
src/days/day14.gleam
+2
-3
src/days/day14.gleam
···
1
1
import gleam/io
2
-
import gleam/string
3
2
4
-
pub fn part1(input: String) -> String {
3
+
pub fn part1(_input: String) -> String {
5
4
// TODO: Implement part 1
6
5
"Not implemented"
7
6
}
8
7
9
-
pub fn part2(input: String) -> String {
8
+
pub fn part2(_input: String) -> String {
10
9
// TODO: Implement part 2
11
10
"Not implemented"
12
11
}
+2
-3
src/days/day15.gleam
+2
-3
src/days/day15.gleam
···
1
1
import gleam/io
2
-
import gleam/string
3
2
4
-
pub fn part1(input: String) -> String {
3
+
pub fn part1(_input: String) -> String {
5
4
// TODO: Implement part 1
6
5
"Not implemented"
7
6
}
8
7
9
-
pub fn part2(input: String) -> String {
8
+
pub fn part2(_input: String) -> String {
10
9
// TODO: Implement part 2
11
10
"Not implemented"
12
11
}
+2
-3
src/days/day16.gleam
+2
-3
src/days/day16.gleam
···
1
1
import gleam/io
2
-
import gleam/string
3
2
4
-
pub fn part1(input: String) -> String {
3
+
pub fn part1(_input: String) -> String {
5
4
// TODO: Implement part 1
6
5
"Not implemented"
7
6
}
8
7
9
-
pub fn part2(input: String) -> String {
8
+
pub fn part2(_input: String) -> String {
10
9
// TODO: Implement part 2
11
10
"Not implemented"
12
11
}
+2
-3
src/days/day17.gleam
+2
-3
src/days/day17.gleam
···
1
1
import gleam/io
2
-
import gleam/string
3
2
4
-
pub fn part1(input: String) -> String {
3
+
pub fn part1(_input: String) -> String {
5
4
// TODO: Implement part 1
6
5
"Not implemented"
7
6
}
8
7
9
-
pub fn part2(input: String) -> String {
8
+
pub fn part2(_input: String) -> String {
10
9
// TODO: Implement part 2
11
10
"Not implemented"
12
11
}
+2
-3
src/days/day18.gleam
+2
-3
src/days/day18.gleam
···
1
1
import gleam/io
2
-
import gleam/string
3
2
4
-
pub fn part1(input: String) -> String {
3
+
pub fn part1(_input: String) -> String {
5
4
// TODO: Implement part 1
6
5
"Not implemented"
7
6
}
8
7
9
-
pub fn part2(input: String) -> String {
8
+
pub fn part2(_input: String) -> String {
10
9
// TODO: Implement part 2
11
10
"Not implemented"
12
11
}
+2
-3
src/days/day19.gleam
+2
-3
src/days/day19.gleam
···
1
1
import gleam/io
2
-
import gleam/string
3
2
4
-
pub fn part1(input: String) -> String {
3
+
pub fn part1(_input: String) -> String {
5
4
// TODO: Implement part 1
6
5
"Not implemented"
7
6
}
8
7
9
-
pub fn part2(input: String) -> String {
8
+
pub fn part2(_input: String) -> String {
10
9
// TODO: Implement part 2
11
10
"Not implemented"
12
11
}
+2
-3
src/days/day20.gleam
+2
-3
src/days/day20.gleam
···
1
1
import gleam/io
2
-
import gleam/string
3
2
4
-
pub fn part1(input: String) -> String {
3
+
pub fn part1(_input: String) -> String {
5
4
// TODO: Implement part 1
6
5
"Not implemented"
7
6
}
8
7
9
-
pub fn part2(input: String) -> String {
8
+
pub fn part2(_input: String) -> String {
10
9
// TODO: Implement part 2
11
10
"Not implemented"
12
11
}
+2
-3
src/days/day21.gleam
+2
-3
src/days/day21.gleam
···
1
1
import gleam/io
2
-
import gleam/string
3
2
4
-
pub fn part1(input: String) -> String {
3
+
pub fn part1(_input: String) -> String {
5
4
// TODO: Implement part 1
6
5
"Not implemented"
7
6
}
8
7
9
-
pub fn part2(input: String) -> String {
8
+
pub fn part2(_input: String) -> String {
10
9
// TODO: Implement part 2
11
10
"Not implemented"
12
11
}
+2
-3
src/days/day22.gleam
+2
-3
src/days/day22.gleam
···
1
1
import gleam/io
2
-
import gleam/string
3
2
4
-
pub fn part1(input: String) -> String {
3
+
pub fn part1(_input: String) -> String {
5
4
// TODO: Implement part 1
6
5
"Not implemented"
7
6
}
8
7
9
-
pub fn part2(input: String) -> String {
8
+
pub fn part2(_input: String) -> String {
10
9
// TODO: Implement part 2
11
10
"Not implemented"
12
11
}
+2
-3
src/days/day23.gleam
+2
-3
src/days/day23.gleam
···
1
1
import gleam/io
2
-
import gleam/string
3
2
4
-
pub fn part1(input: String) -> String {
3
+
pub fn part1(_input: String) -> String {
5
4
// TODO: Implement part 1
6
5
"Not implemented"
7
6
}
8
7
9
-
pub fn part2(input: String) -> String {
8
+
pub fn part2(_input: String) -> String {
10
9
// TODO: Implement part 2
11
10
"Not implemented"
12
11
}
+2
-3
src/days/day24.gleam
+2
-3
src/days/day24.gleam
···
1
1
import gleam/io
2
-
import gleam/string
3
2
4
-
pub fn part1(input: String) -> String {
3
+
pub fn part1(_input: String) -> String {
5
4
// TODO: Implement part 1
6
5
"Not implemented"
7
6
}
8
7
9
-
pub fn part2(input: String) -> String {
8
+
pub fn part2(_input: String) -> String {
10
9
// TODO: Implement part 2
11
10
"Not implemented"
12
11
}
+2
-3
src/days/day25.gleam
+2
-3
src/days/day25.gleam
···
1
1
import gleam/io
2
-
import gleam/string
3
2
4
-
pub fn part1(input: String) -> String {
3
+
pub fn part1(_input: String) -> String {
5
4
// TODO: Implement part 1
6
5
"Not implemented"
7
6
}
8
7
9
-
pub fn part2(input: String) -> String {
8
+
pub fn part2(_input: String) -> String {
10
9
// TODO: Implement part 2
11
10
"Not implemented"
12
11
}
+2
-4
test/aoc2025_gleam_test.gleam
+2
-4
test/aoc2025_gleam_test.gleam
···
1
-
import days/day01
2
-
import days/day02
3
1
import gleeunit
4
2
5
3
pub fn main() -> Nil {
···
8
6
9
7
// Example test for day01
10
8
pub fn day01_part1_test() {
11
-
let example_input = ""
9
+
let _example_input = ""
12
10
// Add your example input here
13
11
// assert day01.part1(example_input) == "expected_result"
14
12
}
15
13
16
14
// Example test for day01 part 2
17
15
pub fn day01_part2_test() {
18
-
let example_input = ""
16
+
let _example_input = ""
19
17
// Add your example input here
20
18
// assert day01.part2(example_input) == "expected_result"
21
19
}