[求助]如何对这样的一个选择集进行重新排序呀?
请老师们指教。若有这样一个选择集,里面有n个大小不一定相等的数按数值从小到大重新排例。选择集里n的数量不是常量。应该怎么实现呀。老师给我个提示呀。 VL-SORT根据给定的比较函数来对表中的元素排序<BR>(vl-sort list comparison-function)
参数
list
任意表。
comparison-function
比较函数。它可以是任何一个这样的函数:接受如下两个参数,如果第一个参数按排序顺序在第二个元素之前,则返回 T 或非 nil <BR>值。comparison-function 的值可以采用如下格式:
符号 (函数名) <BR> '(LAMBDA (A1 A2) ...) <BR> (FUNCTION (LAMBDA (A1 A2) ...))
返回值
表,其中包含 list 中的元素,这些元素按照 comparison-function 中指定的顺序排列。表中可能删除了重复的元素。
样例
对数值表排序:
_$ (vl-sort '(3 2 1 3) '<)
(1 2 3) ;
请注意结果表中仅包含一个 3。<BR>按 Y 坐标对二维点表排序:
_$ (vl-sort '((1 3) (2 2) (3 1)) <BR> (function (lambda (e1 e2) <BR> (< (cadr e1) (cadr e2)) ) ) )
((3 1) (2 2) (1 3))
对符号表排序:
_$ (vl-sort <BR> '(a d c b a) <BR> '(lambda (s1 s2) <BR> (< (vl-symbol-name s1) (vl-symbol-name s2)) ) )
(A B C D) ; 请注意在结果表中仅有一个 A 先把选择集做成表,再用楼上的函数 我看了,只看懂了VL-sort函数的用法,初步认识了VL—家族中的sort成员,其他成员就只有它们认识我,我不认识它们了。请问老师们,VLisp的常用函数主要有哪些,其用法及结构分别是什么呀?最好整理出来发成一个贴置顶就好了。 帮助文件中有,在“开发人员手册”中Autolisp函数摘要部分,按功能分类了,应该很好查了
页:
[1]