(defun simple (list) (cond ((equal 'a (first list)) (print "A!")) ((equal 'b (first list)) (print "B!")) (t (error "Can't happen!")))) (defun check-args (list) (dolist (arg list t) (when (not (numberp arg)) (return nil)))) (defun simple2 (list) (let ((sum1 0)(sum2 0)) (when (not (check-args list)) (error "simple2: Non-numeric args!")) (dolist (element list) (setq sum1 (+ sum1 element))) (dolist (element list) (setq sum2 (+ sum2 (* 2 element)))) (format *standard-output* "First sum: ~a~%Second sum: ~a~%" sum1 sum2) ))