--- 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)))))