# HG changeset patch # User Steve Losh # Date 1638553425 18000 # Node ID a1c5d160d73892b77f62066e0566bbc5367f9b1b # Parent 08dd2b57f2c0179ccd9dd3a8047a5b8c71b0a937 Cleanup diff -r 08dd2b57f2c0 -r a1c5d160d738 src/2021/days/day-03.lisp --- a/src/2021/days/day-03.lisp Fri Dec 03 12:36:07 2021 -0500 +++ b/src/2021/days/day-03.lisp Fri Dec 03 12:43:45 2021 -0500 @@ -1,8 +1,8 @@ (advent:defpackage* :advent/2021/03) (in-package :advent/2021/03) -(defun bool->bit (b) (if b 1 0)) -(defun char->δ (ch) (ecase ch (#\0 -1) (#\1 1))) +(defun-inline bool->bit (b) (if b 1 0)) +(defun-inline char->δ (ch) (ecase ch (#\0 -1) (#\1 1))) (defun count-bits (data) (iterate @@ -23,7 +23,7 @@ (with lo = 0) (with hi = (1- (length sorted-data))) (when (= lo hi) - (return (digits->number (aref sorted-data lo) :radix 2 :key #'digit-char-p))) + (return (parse-integer (aref sorted-data lo) :radix 2))) (for i :from 0) (for count = (iterate (for candidate :in-vector sorted-data :from lo :to hi) (summing (char->δ (aref candidate i)))))