Быстрая сортировка, проблема с пониманием кода Common Lisp - PullRequest
1 голос
/ 01 июня 2019

для моего исследования мне нужно объяснить функцию 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))
...