title: Setting up a equal function in common lisp using only "eq"
body: <p>I've given the assingment to write a function in common lisp to compare two lists to see if they are equal and I have been bared from using the "equal" predicate I can only use "eq" and I seem to come to a wall. I get this error with my code EVAL: variable SETF has no value
  The following restarts are available:
  and he code:</p>
  
  <pre><code>(defun check(L1 L2)
    (cond
     ((eq L nil) nil)
     (setq x (first L1))
     (setq y (first L2))
     (setf L1 (rest L1))
     (setf L2 (rest L2))
     (if (eq x y) (check L1 L2))))
  
  (defun b(L1 L2)
    (cond
     ((eq L1 nil) nil)
     (setf x (first L1))
     (setf y (first L2))
     (setf L1 (rest L1))
     (setf L2 (rest L2))
     (if (and (list x) (list y)
             (check(x y))
              (if (eq x y) (b(L1 L2))))))
  </code></pre>