diff options
Diffstat (limited to 'advent-of-code/2023/04/2.rkt')
| -rw-r--r-- | advent-of-code/2023/04/2.rkt | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/advent-of-code/2023/04/2.rkt b/advent-of-code/2023/04/2.rkt index fa1dd86..eec9632 100644 --- a/advent-of-code/2023/04/2.rkt +++ b/advent-of-code/2023/04/2.rkt @@ -25,23 +25,23 @@ (define card-count (make-vector (length cards) 1)) (define (win-count card) - (length (filter (lambda (x) (member x (card 'win-nums))) (card 'nums)))) + (length (filter (λ (x) (member x (card 'win-nums))) (card 'nums)))) (define card-vec (list->vector cards)) (let loop ((i 0)) (if (>= i (vector-length card-count)) - (void) - (let () - (define win-cnt (win-count (vector-ref card-vec i))) - (let loop ((j (+ i 1))) - (if (or (>= j (vector-length card-count)) - (>= j (+ 1 i win-cnt))) - (void) - (let () - (vector-set! card-count j (+ (vector-ref card-count i) - (vector-ref card-count j))) - (loop (+ 1 j))))) - (loop (+ 1 i))))) + (void) + (let () + (define win-cnt (win-count (vector-ref card-vec i))) + (let loop ((j (+ i 1))) + (if (or (>= j (vector-length card-count)) + (>= j (+ 1 i win-cnt))) + (void) + (let () + (vector-set! card-count j (+ (vector-ref card-count i) + (vector-ref card-count j))) + (loop (+ 1 j))))) + (loop (+ 1 i))))) (apply + (vector->list card-count))
\ No newline at end of file |
