请教关于(VL-SORT list comparision-function)函数的用法?
(VL-SORT list comparision-function)函数这个函数是将list表排序并去除重复的元素。但是我用后没有得到这样的结果,请问用这个函数应注意些什么?
我的格式是(VL-SORT c1-item '<) 其中c1-item是我从excel表中读来的一组数据。 看看你的c1-item的内容 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") 这样:(mapcar 'chr (vl-sort (mapcar 'ascii c1-item) '<)) It must be a mistake made by Autodesk. 也不是,在帮助文件中有这样的说明:
返回值
表,其中包含 list 中的元素,这些元素按照 comparison-function 中指定的顺序排列。表中可能删除了重复的元素。
就是没有明确说明哪种情况下会删除重复的元素,这个“可能”太模糊了 指令: (setq a '("1" "2" "1" "3"))<BR>("1" "2" "1" "3")
指令: (vl-sort a '<)<BR>("1" "1" "2" "3")
指令: (setq b '(1 2 1 3))<BR>(1 2 1 3)
指令: (vl-sort b '<)<BR>(1 2 3) 楼上的,想说明什么呢?这几个我也知道啊,我上面的就是把字符转换成数字来排序的,问题是这个规律是什么?哪些会删除重复,哪些不删除, 老大,那是寫給樓主看的,文字,數字,他該會判斷吧 整数,整数,还是整数(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