RosettaCodeData/Task/Binary-search/Emacs-Lisp/binary-search.l

11 lines
376 B
Text
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
(defun binary-search (value array)
(let ((low 0)
(high (1- (length array))))
(cl-do () ((< high low) nil)
(let ((middle (floor (+ low high) 2)))
(cond ((> (aref array middle) value)
(setf high (1- middle)))
((< (aref array middle) value)
(setf low (1+ middle)))
(t (cl-return middle)))))))