我正在尝试使用 lisp 的排序通过函数对列表进行排序,但不知道如何执行此操作。 我在 2D 空间中有一个 x 和 y 坐标的起点。然后我有一个 N 其他点的列表,我有一个计算 2 点之间距离的函数。 我现在想要的是一个列表,其中包含所有 N 点,并按从起点到所有其他点的距离升序排序。
我想我可以使用排序函数并将函数作为参数传递(计算距离函数),但我不知道该怎么做,网上的研究也没有帮助。
有什么想法吗?
问候
最佳答案
将 :key
与 sort
一起使用:
(sort list #'< :key (lambda (p) (dist p start-point)))
这将根据到 start-point
的距离以递增顺序(使用 >
递减)对 list
点进行排序。
关于list - lisp 通过函数排序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15385099/