для моего исследования мне нужно объяснить функцию Quicksort, запрограммированную в Common Lisp. Честно говоря, я действительно не знаю, как работать с Common Lisp. Я получил код из Интернета (для моего профессора можно использовать код из Интернета), который решает проблему сортировки списка чисел.
Я действительно не понимаю этот код, может кто-нибудь объяснить мне, что он делает точно?
Спасибо, пока !!
(defun quick-sort (list)
(if (cdr list)
(let ((pivot (car list)))
(flet ((filter (operator)
(remove-if-not
(lambda (n) (funcall operator n pivot))
list)))
(append (quick-sort (filter #'<))
(filter #'=)
(quick-sort (filter #'>)))))
list))