(defun heap-dequeue (heap) (unless (heap-empty-p heap) (let ((save (heap-front heap))) (setf (aref (heap-array heap) 0) (aref (heap-array heap) (decf (heap-size heap)))) ;;allow removed for begin garbage collected (setf (aref (heap-array heap) (heap-size heap)) 0) (heapify (heap-array heap) 0 (heap-size heap) (heap-key-fn heap) (heap-comparator heap)) save)))Source Context