list - lisp 通过函数排序列表

标签 list function sorting lisp

我正在尝试使用 lisp 的排序通过函数对列表进行排序,但不知道如何执行此操作。 我在 2D 空间中有一个 x 和 y 坐标的起点。然后我有一个 N 其他点的列表,我有一个计算 2 点之间距离的函数。 我现在想要的是一个列表,其中包含所有 N 点,并按从起点到所有其他点的距离升序排序。

我想我可以使用排序函数并将函数作为参数传递(计算距离函数),但我不知道该怎么做,网上的研究也没有帮助。

有什么想法吗?

问候

最佳答案

:keysort 一起使用:

(sort list #'< :key (lambda (p) (dist p start-point)))

这将根据到 start-point 的距离以递增顺序(使用 > 递减)对 list 点进行排序。

关于list - lisp 通过函数排序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15385099/

相关文章:

algorithm - 数基转换的时间复杂度

python - 列表结构比较

c# - 一次将对象从List <T>中拉出多个ID?

c++ - 没有定义的函数声明

c++ - 在这种情况下如何使成员函数成为友元函数?

algorithm - 在 O(n log(log n)) 中对数组进行排序

c - 插入排序不起作用

python - 使用 pop() 在 Python 中进行列表操作

python - 将一些元素保留在列表中

php - 跟踪方法的内存使用情况