Abhinav's Notes

Learnings from Solving Advent of Code 2020 in Haskell

After many years of trying unsuccessfully, I finally completed all 25 days of the Advent of Code 2020 in Haskell. Here is a summary of my learnings and solutions.



Here’s the index of all the solutions I wrote for AoC 2020:

Problem Solution Salient points Libraries/modules used
1 β†— List comprehensions None
2 β†— Validation None
3 β†— Zippers None
4 β†— Validation split
5 β†— Decoding None
6 β†— None None
7 β†— Parsing, graphs mtl, graph-wrapper
8 β†— Parsing, interpreter mtl
9 β†— None None
10 β†— Graphs, memoization None
11 β†— Cellular automata, zippers comonad, Data.Sequence
12 β†— Geometry None
13 β†— Number theory None
14 β†— Parsing, interpreter mtl
15 β†— Number sequence Data.Vector.Unboxed.Mutable
16 β†— Parsing, constraint satisfaction mtl
17 β†— Cellular automata, zippers comonad, Data.List
18 β†— Parsing, interpreter mtl
19 β†— Parsing ReadP
20 β†— Image manipulation Data.Array.BitArray
21 β†— Parsing, constraint satisfaction ReadP
22 β†— Recursion, game None
23 β†— Linked list, game Data.Vector.Primitive.Mutable
24 β†— Parsing, cellular automata ReadP, Map
25 β†— Cryptography None