I'm writing some programs in LISP for a class right now. No programming language should use so many parentheses. It's truly evil. Anything that looks like this should be shot:
(defun addlists (L1 L2)
(cond ((equal (length L1) (length L2))
(cond ((equal L1 Nil) NIL)
(T (cons (+ (car L1) (car L2))(addlists (cdr L1) (cdr L2))))))
(T '(LISTS_OF_UNEQUAL_LENGTH))))
(defun addlists (L1 L2)
(cond ((equal (length L1) (length L2))
(cond ((equal L1 Nil) NIL)
(T (cons (+ (car L1) (car L2))(addlists (cdr L1) (cdr L2))))))
(T '(LISTS_OF_UNEQUAL_LENGTH))))