排序函数vl-sort的使用问题
本帖最后由 蓦然回首 于 2011-8-20 18:13 编辑我要是是实现对表内数组按大小进行排序,获取表pts,但是提示函数错误,请大家看看到底是哪里的问题啊?
提示错误信息:错误: 函数错误: (quote #<USUBR @06a87190 -lambda->)
程序代码:
(defun C:gaa(/ pts )
(vl-load-com)
(setq pts'())
(setq d -12.3 h 13.4 d1 -20.5 h1 15.3 d2 -30.5 h2 14.6)
(setq cc (list d h))
(setq cc2 (list d1 h1))
(setq cc3 (list d2 h2))
(setq pts(cons cc pts))
(setq pts (cons cc3 pts))
(setq pts(cons cc2 pts))
(princ pts)
(vl-sort pts '(function (lambda (e1 e2)(< (car e1)(car e2)))) )
(setq ff1 (open "C:\\C盘text\\断面.txt" "a"))
(print pts ff1)
(close ff1)
)
问题已解决!!!
===>
(vl-sort pts (function (lambda (e1 e2)(< (car e1)(car e2)))) )
本帖最后由 chengx2000 于 2011-8-20 18:28 编辑
(defun C:gaa (/ pts d h d1 h1 d2 h2 cc cc2 cc3 )
;;;(vl-load-com)这段代码不用照样能用vl-sort
(setq pts '())
(setq d-12.3
h13.4
d1 -20.5
h1 15.3
d2 -30.5
h2 14.6
)
(setq cc(list d h)
cc2 (list d1 h1)
cc3 (list d2 h2)
pts (cons cc pts)
pts (cons cc3 pts)
pts (cons cc2 pts)
)
(princ pts)
(setq
pts (vl-sort pts
(function (lambda (e1 e2) (< (car e1) (car e2))));此处多了一个quote,现在已经去掉了
)
)
(setq ff1 (open "d:\\C盘text\\断面.txt" "a"))
(print pts ff1)
(close ff1)
)
顶强人 楼上的能排序但不能消重,还是谢
页:
[1]