lisp排序列表通过功能

Chr*_*amn 4 lisp sorting function list

我试图使用lisp的排序通过函数排序列表,但没有线索如何做到这一点.我在2D空间中有一个带有x和y坐标的起点.然后我有一个N-other点列表,我有一个函数,计算2点之间的距离.我现在想要的是一个包含所有N点的列表,并按照从起点到所有其他点的距离进行排序.

我想我可以使用sort-function并传递一个函数作为参数(计算距离函数)但我不知道如何做到这一点,并在网络上的研究没有帮助.

有任何想法吗?

问候

sds*_*sds 8

使用:keysort:

(sort list #'< :key (lambda (p) (dist p start-point)))
Run Code Online (Sandbox Code Playgroud)

这将根据到达的距离list按递增顺序(>用于减少)对点进行排序start-point.