回望南山
记忆痕迹可以鲜明, 回望往事如数家珍——
posts - 177,  comments - 54,  trackbacks - 0
;;from wkai@xdcad.net
;;20050928
;;功能   :对表进行复合排序
;;参数lst:需要被排序的表
;;sortlst:排序命令序列表
;;返回值 :排序后的表
;;
;;示例:(XDL-SORT '(0 2 3 7 8 5 7 ) '>)
;;         从大到小排序
;;         --->>(8 7 5 3 2 0)
;;     (XDL-SORT '((0 1)(1 0)(9 6)(9 5)(5 9)(6 9)(7 8)(8 7)) '(0 >))
;;         第0项从大到小排序
;;         --->>((9 6) (9 5) (8 7) (7 8) (6 9) (5 9) (1 0) (0 1))
;;     (XDL-SORT '((0 1)(1 0)(9 6)(9 5)(5 9)(6 9)(7 8)(8 7)) '((0 >)( 1 <)))
;;         第0项从大到小第1项从小到大排序;;
;;         --->>((9 5) (9 6) (8 7) (7 8) (6 9) (5 9) (1 0) (0 1))
;;     (XDL-SORT '((0 1)(1 0)(9 6)(9 5)(5 9)(6 9)(7 8)(8 7)) '(( 1 <)(0 >)))
;;         第1项从小到大第0项从大到小排序
;;         --->>((1 0) (0 1) (9 5) (9 6) (8 7) (7 8) (6 9) (5 9))
(defun XDL-SORT(lst sortlst / n)
  (if (listp sortlst)
    (if (listp (car sortlst))
      (setq sortlst (reverse sortlst))
      (setq sortlst (list sortlst))
    )
    (setq sortlst (list (list nil sortlst)))
  )
  (foreach n sortlst
    (setq lst (vl-sort lst '(lambda (s1 s2)
         (apply (cadr n) (list (if (car n) (nth  (car n) s1) s1)
          (if (car n) (nth  (car n) s2) s2)))))
    )
  )
)
posted on 2008-03-12 22:22 深藏记忆 阅读(262) 评论(0)  编辑  收藏 所属分类: Vlisp之韵

飘过是缘,相识最真

订阅到抓虾
google reader
gougou


点击这里给我发消息


<2008年3月>
2425262728291
2345678
9101112131415
16171819202122
23242526272829
303112345

常用链接

留言簿(5)

随笔分类

随笔档案

文章分类

文章档案

相册

收藏夹

八面来息

天天充电

同行者

积分与排名

  • 积分 - 59540
  • 排名 - 62

最新评论

阅读排行榜

评论排行榜