Quicksort,了解Common Lisp代码的问题

时间:2019-06-01 15:38:03

标签: functional-programming lisp common-lisp quicksort

对于我的研究,我需要解释Common Lisp中编程的Quicksort的功能。老实说,我真的不知道如何使用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))

0 个答案:

没有答案