排序?
本人有一个类似如下的表:((2 4 (5 3)) (5 2 (5 2)) (4 76 (54 23)) .......)
希望得到一个按照子表中的第二个元素排序的升序的表。
谢谢! 程序:
(DEFUN LSORT (DL I / K N DDL L1 L2 IPN J)<BR> (SETQ K 0 N (LENGTH DL))<BR> (WHILE (< K N) (SETQ J (1+ K) L1 (NTH K DL) IPN K)<BR> (WHILE (< J N) (SETQ L2 (NTH J DL) J (1+ J))<BR> (IF (> (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 (< J K) (SETQ DDL (CONS (NTH J DL) DDL) J (1+ J)))<BR> (SETQ DDL (CONS L1 DDL))<BR> (WHILE (< 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> (vl-sort '((2 4 (5 3)) (5 2 (5 2)) (4 76 (54 23))) '(lambda(e1 e2) (< (cadr e1) (cadr e2)))) 谢谢! 感谢斑竹,感谢飞哥!
页:
[1]