diff --git a/2017/d8/main.rkt b/2017/d8/main.rkt index e4fab5e..03e0db4 100644 --- a/2017/d8/main.rkt +++ b/2017/d8/main.rkt @@ -11,8 +11,10 @@ (define (max-arg vals) (argmax cdr (hash->list vals))) (define max-seen 0) (define (set-val! key updater) - (hash-update! vals key updater 0) - (set! max-seen (max max-seen (cdr (max-arg vals))))) + (hash-update! vals key (λ (val) + (define new-val (updater val)) + (set! max-seen (max max-seen new-val)) + new-val) 0)) (provide >= <= < > ==) (define-macro-cases cmp