Plaster

text
(defun binary-search (vector key &optional (start 0) (end (length vector)) (less #'<)) (if (= start (1- end)) start (let ((middle (floor (/ (+ start end) 2)))) (if (funcall less key (aref vector middle)) (binary-search vector key start middle less) (binary-search vector key middle end less))))) (binary-search #(1 9) 3) ;; => 0