- AoC '15 in Haskell
- AoC '16
- AoC '17
- AoC '18
- AoC '19
- AoC '20
- AoC '21
- AoC '22 in Haskell (and partly in C++) (approx. 2/3 completed)
- AoC '23 in Haskell (approx. 2/3 completed)
- AoC '24 in Haskell (19 β out of 50 β)
- AoC '25 (yet to come)
- AoC '26 (yet to come)
The progamming language Haskell is very well suited for mathematical notions, pure computations and and has a terse syntax. It's often marketed as "an advanced, purely functional programming language", that is declarative and statically typed.
Sometimes, however, one needs stateful computations with e. g. arrays that are better expressed in an imperative language like C++.
I use C++ first and foremost because I'm too lazy to use C which would require me to implement a lot of data structures and algorithms myself.
Since I'm at least as lazy as Haskell, I use therefore sometimes C++, too.
If not necessary, I don't write object oriented code.
Some nice videos about AoC on YouTube: