You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
aoc-racket/2019
Matthew Butterick f4e3c645ab
Update README.md
5 years ago
..
01.rkt 2019 d01 & d02 5 years ago
01.rktd 2019 d01 & d02 5 years ago
02.rkt 2019 d01 & d02 5 years ago
02.rktd 2019 d01 & d02 5 years ago
03.rkt simplify loop 5 years ago
03.rktd d03 5 years ago
04.rkt use integers 5 years ago
04.rktd d04 5 years ago
05.rkt simplify 5 years ago
05.rktd d05 5 years ago
06.rkt d06 alternate solution 5 years ago
06.rktd d06 5 years ago
07-gen.rkt d07 alternate solution with generators 5 years ago
07.rkt d07 pt2 5 years ago
07.rktd d07 pt1 5 years ago
08.rkt d08 5 years ago
08.rktd d08 5 years ago
09.rkt d09 pt2 5 years ago
09.rktd d09 (stuck) 5 years ago
README.md Update README.md 5 years ago

README.md

MBs Advent of Code tips

  • Complex numbers are a nice way of modeling two-dimensional positions.

  • Use lists whenever feasible, because there are many useful list functions in the Racket library that dont have vector equivalents.

  • In particular, these list functions are very useful.

  • eq? is the fastest equality check, but it only works for symbols and fixnums (therefore, use more symbols and fixnums so you can use eq?!)

  • match is fantastic.

  • Association lists (= lists of pairs) can be used with the dictionary forms (like dict-ref and in-dict)

  • The graph library can be useful for graph-based problems.

My solutions

  • I try to write solutions that are succinct but not cryptic.

  • I dont optimize for speed.

  • I like doing the Advent of Code problems because it forces me to use parts of Racket that I dont ordinarily use. So I treat it as a chance to expand my awareness of the Racketverse.