src/2017/days/day-08.lisp @ 5f6c2d777533
2019/08 and fix some test failures
| author | Steve Losh <steve@stevelosh.com> |
|---|---|
| date | Sun, 08 Dec 2019 13:47:53 -0500 |
| parents | cd781337a694 |
| children | d692b61fbee1 |
(defpackage :advent/2017/08 #.cl-user::*advent-use*) (in-package :advent/2017/08) (defun == (x y) (= x y)) (defun != (x y) (/= x y)) (defun inc (delta) delta) (defun dec (delta) (- delta)) (define-problem (2017 8) (data read-lines) (5215 6419) (let ((registers (make-hash-table))) (macrolet ((r (register) `(gethash ,register registers 0))) (iterate (for line :in data) (for (reg op delta nil cmp-reg cmp-op cmp-bound) := (read-all-from-string line)) (when (funcall cmp-op (r cmp-reg) cmp-bound) (maximizing (incf (r reg) (funcall op delta)) :into highest)) (finally (return (values (alexandria:extremum (alexandria:hash-table-values registers) #'>) highest)))))))