(defun compress ( l ) (cond ((null l) l) (t (compress1 (car l) 1 (cdr l))))) (defun compress1 (a n l) (cond ((null l) (if (> n 1) (list a n) (list a))) ((eql (car l) a) (compress1 a (+ n 1) (cdr l))) (t (cons (if (> n 1) (list a n) a) (compress1 (car l) 1 (cdr l))))))