From be1991b22411f967435efa7fb8727de42f450265 Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Fri, 8 Dec 2017 14:53:25 -0800 Subject: [PATCH] avoid allocation --- 2017/d8/main.rkt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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