明经通道 Visual LISP 函数  
vl-sort
 

根据给定的比较函数来对表中的元素排序

(vl-sort  list comparison-function)

参数

list

任意表。

comparison-function

比较函数。它可以是任何一个这样的函数:接受如下两个参数,如果第一个参数按排序顺序在第二个元素之前,则返回 T 或非 nil 值。comparison-function 的值可以采用如下格式:

返回值

表,其中包含 list 中的元素,这些元素按照 comparison-function 中指定的顺序排列。表中可能删除了重复的元素。

示例

对数值表排序:

_$ (vl-sort '(3 2 1 3) '<)
(1 2 3)     ;  

请注意结果表中仅包含一个 3。

按 Y 坐标对二维点表排序:

_$ (vl-sort '((1 3) (2 2) (3 1))
             (function (lambda (e1 e2)
                         (< (cadr e1) (cadr e2)) ) ) )
((3 1) (2 2) (1 3))

对符号表排序:

_$ (vl-sort 
   '(a d c b a)
   '(lambda (s1 s2)
    (< (vl-symbol-name s1) (vl-symbol-name s2)) ) )
(A B C D)       ;  请注意在结果表中仅有一个 A

明经通道 版权所有 未经许可 不得传播

 评论