/adventofcode-hs-2017

Solutions to https://adventofcode.com/2017 (all but day 21, unlikely to add day 21 due to lack of interest)

Primary LanguageHaskellApache License 2.0Apache-2.0

Advent of Code

These are my solutions to http://adventofcode.com

All solutions are written in Haskell.

Build Status

Input

In general, all solutions can be invoked in both of the following ways:

  • Without command-line arguments, takes input on standard input.
  • With 1+ command-line arguments, reads input from the first, which must be the path to an input file. Arguments beyond the first are ignored.

Some may additionally support other ways:

None yet.

Highlights

None yet.

Packages

As of 2019, building Haskell packages on my development machine is (mostly) broken, so I was forced to implement the following days without packages, when I otherwise would have preferred to use packages:

None yet.

Closing Thoughts

Even when knot-tying is not directly possible, passing back a function that allows the function to pick up where it left off is a very interesting pattern.

Immutable array updates copy the entire array, so don't do that. Mutable array updates or IntMap, depending on what's appropriate.