This year, AoC is a two-fold challenge:
- I am, once again, using it to get better at programming in Haskell.
- At Point 8, I started a challenge among my co-workers where the person (≠ me) with the highest score would get a prize at the end of December. Naturally, I want to lead by example so I have to stay ahead of the competition :P.
The combination of the two means that the code will usually be far from perfect at the time it produces a working solution. How much time I will spend refactoring it, will be decided on a day-to-day basis. ;)
In order to get better at writing Haskell, I started using hfmt and hlint
and will incorporate their suggestions diligently.
Since the "ship's computer" keeps coming up in multiple problems, I might refactor it into a dedicated module at some point. For now I've just been copying the code. Of course, that's not usually a nice pattern but at least it yields self-contained solutions for each day...