Solutions to Advent of Code problems in Haskell. Some problems have also been solved in other languages. All solutions are noted below.
| 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| ASM | 2/25 | 1/25 | |||||||||
| Haskell | 24/25 | ✓ | ✓ | 11/25 | 9/25 | ✓ | ✓ | ✓ | 12/25 | 20/25 | |
| Koka | 3/25 | ||||||||||
| Nix | 1/25 | ||||||||||
| ngn/k | 3/25 | 2/25 | 5/12 | ||||||||
| ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ |
| Total | 24/25 | ✓ | ✓ | 11/25 | 9/25 | ✓ | ✓ | ✓ | 12/25 | 20/25 | 5/12 |
Setting up the environment for a specific language, day and year is as
simple as running ./aoc -l LANG DAY YEAR. Day is the only required
value, the others default to hs (Haskell) and 2020 respectively.
$ # Haskell
$ ./aoc 23
Setting up day 23 (2020, hs)
Compile and run with:
ghc -O2 run.hs && time ./run
$ ghc -V
The Glorious Glasgow Haskell Compilation System, version 8.8.4
$ exit
$ # ASM
$ ./aoc -l asm 23
Setting up day 23 (2020, asm)
Compile and run with:
nasm -felf64 run.asm && ld -o run run.o && time ./run < input.txt
$ nasm -v
NASM version 2.14.02 compiled on Jan 1 1980
Solved:
| Day \ Year | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 2 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 3 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 4 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 5 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 6 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 7 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 8 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
| 9 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 10 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
| 11 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
| 12 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
| 13 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - | |||
| 14 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - | |||
| 15 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - | ||
| 16 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - | |||
| 17 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - | |||
| 18 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - | |||
| 19 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - | |||
| 20 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - | |||
| 21 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - | ||||
| 22 | ✓ | ✓ | ✓ | ✓ | ✓ | - | |||||
| 23 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - | ||||
| 24 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - | ||||
| 25 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - |
Solved:
- 2015, day 1
- 2015, day 2
- 2015, day 3
- 2024, day 1
- 2024, day 2
- 2025, day 1
- 2025, day 3
- 2025, day 4
- 2025, day 6
- 2025, day 8
Solved:
Solved: