# Lisp Code: Add two list

Can we have a function that can add two list to one, such as (add '(1 2 3) '(4 5 6)) = (5 7 9)

```(defun add-two-list (l r) ; e.g. (1 2 3) (2 3 4) ; returns (3 5 7) (setf return-value '()) (loop for i from 0 to (- (length l) 1) do (setf return-value (cons (+ (nth i l) (nth i r)) return-value)) ) (reverse return-value) )```

If we extend this function to add multiple list, then we need the following:

```(defun final-get-sum ( l n ) ; get final average value ; e.g. (final-get-sum '((1 1 1) (1 1 1) (1 1 1)) 3) ; returns (3 3 3) (cond ((null (car l)) (get-n-zero n) ) (t (add-two-list (car l) (final-get-sum (cdr l) n)) )) )   (defun add-two-list (l r) ; e.g. (1 2 3) (2 3 4) ; returns (3 5 7) (setf return-value '()) (loop for i from 0 to (- (length l) 1) do (setf return-value (cons (+ (nth i l) (nth i r)) return-value)) ) (reverse return-value) )     (defun get-n-zero (n) ; get a list with n zeros (cond ((equal n 0) nil) (t (cons 0 (get-n-zero (- n 1))))) )```

If we go further, we can calculate the average of a list such as
((1 1 1)
(2 2 2)
(3 3 3))
= (2 2 2)

Code

```(defun final-get-average (l n) ; l is the final sum, n is the divider = (length l). ; e.g. (cond ((null (car l)) nil) (t (cons (/ (car l) n) (final-get-average (cdr l) n)))) )```

May be setf is not a good usage here. But the code above surely works.

Category >> Programming Languages
If you want someone to read your code, please put the code inside <pre><code> and </code></pre> tags. For example:
```<pre><code>
String foo = "bar";
</code></pre>
```
• It really helps a lot ………. i found answers of my questions only from this site ……..