本帖最后由 露水2 于 2011-1-17 12:32 编辑
-
- (defun c:test()
- (setq lst '((100 63)(90 86)(90 75)(90 63)(80 25)(80 52)(70 26)));累加成ptn=((100 63)(90 224)(80 77)(70 26))
- (setq nlst '())
- (while lst
- (setq ahlst '()
- a (car (car lst))
- )
- (foreach x lst
- (setq b (car x))
- (if (= a b) (setq ahlst (cons (cadr x) ahlst)))
- );foreach
- (setq nlst (cons (list a (apply '+ ahlst)) nlst)
- lst (vl-remove-if '(lambda(y) (= (car y) a)) lst)
- )
- );while
- (setq nlst (reverse nlst))
- )
和gu_xl有点类似 但是我的有点慢
|