(setf *load-print* T) (defun rev (x) (declare (list x)) ( if (not x) nil (if (listp (car x)) (nconc (rev (cdr x)) (list (rev (car x)))) (nconc (rev (cdr x)) (list (car x))) ) ) ) (setf revlist '(1 (2 3) (((5 4) 6 (1 3))))) (rev revlist) (defun average (x) (declare (list x)) (/ (loop for i in x sum i) (length x) ) ) (setf ave '(1 4 .7 1/3)) (average ave) (defun sum (x) (if (eq (cdr x) NIL) (car x) (setf (car x) (+ (car (reverse x)) (sum (reverse (cdr (reverse x)))))) ) ) (defun average2 (x) (/ (sum x) (length x)) ) (setf ave '(1 4 .7 1/3)) (average2 ave) (defun average3 (x) (/ (apply (function +) x) (length x)) ) (setf ave '(1 4 .7 1/3)) (average3 ave) ; Loading #p"/tmp_mnt/c1/malibu/tas/fischman/h02-solved". ; REV Warning: Declaring REVLIST special. ; (1 (2 3) (((5 4) 6 (1 3)))) ; ((((3 1) 6 (4 5))) (3 2) 1) ; AVERAGE Warning: Declaring AVE special. ; (1 4 0.7 1/3) ; 1.5083333 ; SUM ; AVERAGE2 ; (1 4 0.7 1/3) ; 1.5083333 ; AVERAGE3 ; (1 4 0.7 1/3) ; 1.5083333