badgirl 发表于 2004-6-4 14:05:00

请教关于(VL-SORT list comparision-function)函数的用法?

(VL-SORT list comparision-function)函数


这个函数是将list表排序并去除重复的元素。但是我用后没有得到这样的结果,请问用这个函数应注意些什么?


我的格式是(VL-SORT c1-item '<) 其中c1-item是我从excel表中读来的一组数据。

meflying 发表于 2004-6-4 14:13:00

看看你的c1-item的内容

badgirl 发表于 2004-6-4 14:47:00

c1-item 内容("E" "E" "E" "E" "E" "E" "E" "E" "E" "E" "E" "E" "E" "E" "E" "E" "E" "E" "E" <BR>"E" "E" "E" "E" "E" "E" "E" "E" "E" "E" "E" "E" "E" "E" "H" "H" "H" "H" "H" "H" <BR>"H" "H" "H" "H" "H" "H" "H" "H" "H" "K" "K" "K" "K" "K" "K" "K" "K" "K" "K" "K" <BR>"K" "K" "K" "M" "M" "M" "M" "M" "M" "M" "M" "M" "M" "M" "M" "M" "M" "M" "M" "M" <BR>"M" "M" "M" "M" "M" "M" "M" "M" "M" "M" "M" "M" "M" "M" "M" "M" "M" "M" "M" "M" <BR>"M" "M" "M" "M" "M" "M" "M" "M" "M" "M" "M" "M" "M" "M" "M" "M" "N" "N" "N" "N" <BR>"N" "N" "N" "N" "N" "N" "N" "N" "N" "N" "N" "N" "N" "N" "N" "N" "N" "N" "N" "N" <BR>"N" "N" "N" "N" "N" "N" "N" "N" "N" "N" "N" "N" "N" "N" "N" "N" "N" "N" "N" "N" <BR>"N" "N" "P" "P" "P" "P" "P" "P" "P" "P" "P")

meflying 发表于 2004-6-4 15:01:00

这样:(mapcar 'chr (vl-sort (mapcar 'ascii c1-item) '&lt;))

alin 发表于 2004-6-4 15:15:00

It must be a mistake made by Autodesk.

meflying 发表于 2004-6-4 15:22:00

也不是,在帮助文件中有这样的说明:


返回值


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


就是没有明确说明哪种情况下会删除重复的元素,这个“可能”太模糊了

f5612140 发表于 2004-6-4 18:08:00

指令: (setq a '("1" "2"       "1" "3"))<BR>("1" "2" "1" "3")


指令: (vl-sort a '&lt;)<BR>("1" "1" "2" "3")


指令: (setq b '(1 2 1 3))<BR>(1 2 1 3)


指令: (vl-sort b '&lt;)<BR>(1 2 3)

meflying 发表于 2004-6-4 18:14:00

楼上的,想说明什么呢?这几个我也知道啊,我上面的就是把字符转换成数字来排序的,问题是这个规律是什么?哪些会删除重复,哪些不删除,

f5612140 发表于 2004-6-4 18:19:00

老大,那是寫給樓主看的,文字,數字,他該會判斷吧

无痕 发表于 2004-6-4 20:25:00

整数,整数,还是整数(setq a '("1" "2"   "1" "3"))
(vl-sort a '<)
->("1" "1" "2" "3")
(mapcar 'chr (vl-sort (mapcar 'ascii a) '<))
->("1" "2" "3") (setq b '(1 2 1 3))
(vl-sort b '<)
->(1 2 3)(setq b '(1.1 2.1 1.1 3.1))
(vl-sort b '<)
->(1.1 1.1 2.1 3.1)
(vl-sort b '(lambda(x y)(< (fix x)(fix y))))
->(1.1 1.1 2.1 3.1)
(mapcar '(lambda(x)(/ x 1e5)) (vl-sort (mapcar '(lambda(x)(fix(* x 1e5))) b) '<))
->(1.1 2.1 3.1) (setq c '("c" "d"   "a" "b" "a"))
(vl-sort c '<)
->("a" "a" "b" "c" "d")
(mapcar 'chr (vl-sort (mapcar 'ascii c) '<))
->("a" "b" "c" "d")
页: [1] 2
查看完整版本: 请教关于(VL-SORT list comparision-function)函数的用法?