Refactor 2023 day 2: parse each line into a single hash table
Dependencies
- [2]
RDQKKB5G2023 day 2 part 1
Change contents
- replacement in 2023/day2.lisp at line 83
(current-grab (make-hash-table))(grabs nil))(grab (make-hash-table))) - replacement in 2023/day2.lisp at line 87
(unless (equalp ":" (next-token toks))(warn "Missing colon"))(loop for count = (let ((tok (next-token toks)))(if tok(parse-integer tok)))(unless (equalp ":" (next-token toks)) (warn "Missing colon"))(loop forcount = (let ((tok (next-token toks)))(if tok(parse-integer tok))) - edit in 2023/day2.lisp at line 93
for delim = (next-token toks) - replacement in 2023/day2.lisp at line 95
do (setf (gethash colour current-grab) count)(unless (equalp "," (next-token toks))(push current-grab grabs)(setf current-grab (make-hash-table))))(cons game-number (reverse grabs))))do (setf (gethash colour grab) (max (or (gethash colour grab) 0) count))(unless (or (equalp delim ";") (equalp delim ",") (not delim))(warn (format nil "Unrecognized delimiter: ~a" delim))))(cons game-number grab))) - replacement in 2023/day2.lisp at line 112
(if (all #'check-limit (cdr game))(if (check-limit (cdr game))