Solving all of this year's AoC challenges in Haskell, once again!
Current progress:
Day | Stars | Day | Stars | Day | Stars | Day | Stars | Day | Stars |
---|---|---|---|---|---|---|---|---|---|
01 | ⭐️⭐️ | 06 | ⭐️⭐️ | 11 | ⭐️⭐️ | 16 | ⭐️⭐️ | 21 | ⭐️⭐️ |
02 | ⭐️⭐️ | 07 | ⭐️⭐️ | 12 | ⭐️⭐️ | 17 | ⭐️⭐️ | 22 | ⭐️⭐️ |
03 | ⭐️⭐️ | 08 | ⭐️⭐️ | 13 | ⭐️⭐️ | 18 | ⭐️⭐️ | 23 | ⭐️⭐️ |
04 | ⭐️⭐️ | 09 | ⭐️⭐️ | 14 | ⭐️⭐️ | 19 | ⭐️⭐️ | 24 | ⭐️⭐️ |
05 | ⭐️⭐️ | 10 | ⭐️⭐️ | 15 | ⭐️⭐️ | 20 | ⭐️⭐️ | 25 | ⭐️⭐️ |
Some cool stuff I learned / did / remembered this year:
- Simple paralellisation in Haskell (see Utils.hs and Main.hs template)
- Regexes in Haskell (see day 3)
- The magic of Data.Map.union(s)With
- Floating point operations in Haskell (see day 14)
- A nice and sufficiently fast implementation of Dijkstra (see day 18)
- Cliques and how to find them kiiinda efficiently (see day 23)
- A little Vector.hs library with some basic operations (see Vector.hs). (I'd ultimately like to also make a Matricx.hs library, and would also like to explore if / how we can bake dimension into the type system for compile-time checking and less repetitive code.)
- That I finally need to make a Graph.hs library that provides basic functionality like DFS, BFS, Dijkstra, etc. To be done :)