Skip to content

πŸ¦ŒπŸŽ…πŸ»β›„πŸŽ Advent of Code (AoC) β˜ƒοΈβ„οΈπŸ€ΆπŸŽ„ solutions by Lorin Lange.

Notifications You must be signed in to change notification settings

Lorin-Lange/advent-of-code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ¦ŒπŸŽ…πŸ»β›„πŸŽ Advent of Code (AoC) β˜ƒοΈβ„οΈπŸ€ΆπŸŽ„

Overview of the years

  • AoC '15 in Haskell (2 ⭐ out of 50 ⭐)
  • AoC '16
  • AoC '17
  • AoC '18
  • AoC '19
  • AoC '20
  • AoC '21
  • AoC '22 in Haskell and C++ (approx. 2/3 completed)
  • AoC '23 in Haskell (approx. 2/3 completed)
  • AoC '24 in Haskell, Rust and C++ (35 ⭐ out of 50 ⭐)
  • AoC '25 in Haskell (in progress)
  • AoC '26 (yet to come)

Programming languages used

Why Haskell?

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++.

Why 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.

Why Rust?

Rust is a good tradeoff between imperative and functional programming:

But for AoC '25 I'll do it only in Haskell.

About Advent of Code

Some nice videos about AoC on YouTube: