Tri rapide en Lisp

(defun quicksort-aux (vector min max less)
  (unless (<= max min)
    (rotatef (aref vector (floor (+ min max) 2)) (aref vector min))
    (let ((p (partition vector (aref vector min) (1+ min) max less)))
      (rotatef (aref vector min) (aref vector (1- p)))
      (quicksort-aux vector min (- p 2) less)
      (quicksort-aux vector p max less))))

(defun quicksort (vector less)
  (quicksort-aux vector 0 (1- (length vector)) less)
  vector)