首页 > 解决方案 > 快速排序,理解 Common Lisp 代码的问题

问题描述

为了我的学习,我需要解释用 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))

标签: functional-programminglispcommon-lispquicksort

解决方案


推荐阅读