TL;DR - Misc notes from the 2024 Advent of Code in Python and Ocaml and a little bit of Golang.
The repo with my solutions to the Advent of Code 2024 problems can be found here. This is a bunch of random notes from this year’s event, no full write-ups or anything for now just general notes and take-aways.
Languages Learned a bunch of Ocaml (even though I didn’t use it everyday as intended)
TL;DR: re-write the recursive function so that the 1st call doesn’t need to wait for the result from the remaining calls, all the way down to the base case, before returning.
Recursive functions continue calling themselves until the base case is hit - and then they return. The continued calls keep pushing frames onto the stack and can lead to a stack overflow for large inputs. Some languages include an optimization that cleans this up, provided that the function is written in a way that it doesn’t need to wait for the results for all the other recursive calls to resolve to return.