谢谢版主相助
借版主程式改了一个
;如何删除y相同的点表 并按y排序 ;; 保留的点为y相同的其中任一点 ;; (x-sort '((18 20) (40 15) (18 50) (30 50) (40 25))) → '((40 15) (18 20) (40 25) (18 50)) ;(setq lst '((18 20) (40 15) (18 50) (30 50) (40 25)))
(defun y-sort (lst / lst1 lst2 a e1 e2) (setq lst1 '() lst2 '() ) (foreach a lst (if (not (member (cadr a) lst1)) (setq lst1 (cons (cadr a) lst1) lst2 (cons a lst2) ) ) ) (vl-sort lst2 '(lambda (e1 e2) (< (cadr e1) (cadr e2)))) )
|