yaopx0782 发表于 2005-2-23 18:17:00

排序?

本人有一个类似如下的表:


((2 4 (5 3)) (5 2 (5 2)) (4 76 (54 23)) .......)


希望得到一个按照子表中的第二个元素排序的升序的表。


谢谢!

ZZXXQQ 发表于 2005-2-24 01:13:00

程序:


(DEFUN LSORT (DL I / K N DDL L1 L2 IPN J)<BR>        (SETQ K 0 N (LENGTH DL))<BR>        (WHILE (&lt; K N) (SETQ J (1+ K) L1 (NTH K DL) IPN K)<BR>       (WHILE (&lt; J N) (SETQ L2 (NTH J DL) J (1+ J))<BR>               (IF (&gt; (NTH I L1) (NTH I L2)) (SETQ L1 L2 IPN (1- J)))<BR>       )<BR>       (IF (/= IPN K) (PROGN<BR>               (SETQ J 0 DDL (LIST))<BR>               (WHILE (&lt; J K) (SETQ DDL (CONS (NTH J DL) DDL) J (1+ J)))<BR>               (SETQ DDL (CONS L1 DDL))<BR>               (WHILE (&lt; J N)<BR>                       (IF (/= J IPN) (SETQ DDL (CONS (NTH J DL) DDL)))<BR>                       (SETQ J (1+ J))<BR>               )<BR>               (SETQ DL (REVERSE DDL))<BR>       ))<BR>       (SETQ K (1+ K))<BR>        )<BR>)<BR>

meflying 发表于 2005-2-24 08:45:00

(vl-sort '((2 4 (5 3)) (5 2 (5 2)) (4 76 (54 23))) '(lambda(e1 e2) (&lt; (cadr e1) (cadr e2))))

yaopx0782 发表于 2005-2-24 10:52:00

谢谢!

yaopx0782 发表于 2005-2-24 11:45:00

感谢斑竹,感谢飞哥!
页: [1]
查看完整版本: 排序?