【e派】vl-sort针对整数表排序时的bug
本帖最后由 xyp1964 于 2014-8-2 07:46 编辑(vl-sort '(1 2 1) '<)的结果居然不是‘(1 1 2) 而是 ’(1 2),如何解决?
自定义 本帖最后由 风树 于 2014-8-1 19:31 编辑
(xyp-sort '(1 2 1) '<) (vl-sort '(1 2 1) '<=)行吗? ;; (IntLstSort '(1 3 2 1) '>)
(defun IntLstSort(lst fun)
(mapcar'(lambda(x)(if(and(=(type x)'REAL)(equal x(fix x)))(fix x)x))
(vl-sort(mapcar'(lambda(x)(if(=(type x)'INT)(distof(itoa x))x))lst)fun))
) 想想 ,需要改变输入数据的特性吗? 本帖最后由 xyp1964 于 2014-8-1 21:54 编辑
风树 发表于 2014-8-1 21:46 static/image/common/back.gif
想想 ,需要改变输入数据的特性吗?;; (aaa '(1 3 2 1) <)
(defun aaa(lst fun)(mapcar'car(vl-sort(mapcar'(lambda(x)(list x))lst)'(lambda(x y)(fun(car x)(car y)))))) xyp1964 发表于 2014-8-1 21:52 static/image/common/back.gif
出大招 xyp1964 发表于 2014-8-1 21:52 static/image/common/back.gif
升一个维度来处理,很巧啊 这似乎不像院长本人的帖子,这个问题早就讨论过,升维和变实数以前都提高,还有提出使用vl-sort-i来解决的思路。
页:
[1]
2