对于我的研究,我需要解释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))