functional-programming - 快速排序,理解 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))
解决方案
推荐阅读
- c++ - 使用静态成员函数在初始化列表中初始化常量成员变量有什么问题吗?
- ansible - 将with_items的输出存储到ansible中的单个变量中
- javascript - 如何先按一个属性对数组进行排序,然后按属性字母顺序排列另一个?
- sql-server - SSIS 上的重复包变量
- iis - 使用 HttpContext.Session 将 ASP.NET Core 2.2 应用程序部署到 IIS 会话后无法正常工作
- angular - 如何自定义 Angular Material 导航栏的 UI,使其至少始终显示图标?
- visual-studio-code - VSCode:作为任务的一部分打开新终端?
- opencv - 我使用的是 Mac,我可以安装 Visual C++ 2015 再分发版吗?因为在那之后我想安装opencv3
- android - 我无法在 ImagevView 中看到我的图片
- python - 如何将浮点数四舍五入到小数点后一位?