I've always done it in a Scheme. Generally to learn a new compiler and its quirks.
Scheme is fairly well suited to both general programming, and abstract math, which tends to be a good fit for AoC.