CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 文档中心

vl-sort(AutoLISP)

2023-1-7 15:25| 发布者: admin| 查看: 245| 评论: 0|来自: AutoCAD

摘要: 根据给定的比较函数对列表中的元素进行排序

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

支持的平台:视窗和 Mac OS

签名

(vl-sort lst comparison-function)
lst

类型:列表

要排序的任何列表。

比较功能

类型:子例程或符号

比较函数。这可以是接受两个参数并返回(或任何非值)的函数,如果第一个参数在排序顺序中先于第二个参数。比较函数值可以采用以下形式之一:Tnil

  • 符号(函数名称)
  • '(LAMBDA (A1 A2) ...)
  • (FUNCTION (LAMBDA (A1 A2) ...))

返回值

类型:列表

比较函数指定的顺序包含lst元素的列表。可以从列表中删除重复的元素。

例子

对数字列表进行排序:

(vl-sort '(3 2 1 3) '<)
(1 2 3)

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

Y坐标对 2D 点列表进行排序:

(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)       ;  Note that only one A remains in the result list

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-19 16:15

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部