xstlf 发表于 2005-1-9 17:44:00

[求助]如何对这样的一个选择集进行重新排序呀?

请老师们指教。若有这样一个选择集,里面有n个大小不一定相等的数按数值从小到大重新排例。选择集里n的数量不是常量。应该怎么实现呀。老师给我个提示呀。

spring 发表于 2005-1-9 20:39:00

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) '&lt;)
(1 2 3)                               ;       
请注意结果表中仅包含一个 3。<BR>按 Y 坐标对二维点表排序:
_$ (vl-sort '((1 3) (2 2) (3 1)) <BR>                                                                                               (function (lambda (e1 e2) <BR>                                                                                                                                                                                               (&lt; (cadr e1) (cadr e2)) ) ) )
((3 1) (2 2) (1 3))
对符号表排序:
_$ (vl-sort       <BR>               '(a d c b a) <BR>               '(lambda (s1 s2) <BR>                               (&lt; (vl-symbol-name s1) (vl-symbol-name s2)) ) )
(A B C D)                                               ;       请注意在结果表中仅有一个 A

meflying 发表于 2005-1-10 08:22:00

先把选择集做成表,再用楼上的函数

xstlf 发表于 2005-1-10 08:34:00

我看了,只看懂了VL-sort函数的用法,初步认识了VL—家族中的sort成员,其他成员就只有它们认识我,我不认识它们了。请问老师们,VLisp的常用函数主要有哪些,其用法及结构分别是什么呀?最好整理出来发成一个贴置顶就好了。

meflying 发表于 2005-1-10 13:04:00

帮助文件中有,在“开发人员手册”中Autolisp函数摘要部分,按功能分类了,应该很好查了
页: [1]
查看完整版本: [求助]如何对这样的一个选择集进行重新排序呀?