title: Symbol’s value as variable is void: false when run element-of-setp
body: <p>Following SICP's instruction, I rewrite its intersection-set as:</p>
  
  <pre><code>(defun intersection-set (set1 set2)
    (cond ((or (null set1) (null set2)) '())
          ((element-of-setp (car set1) set2)
           (cons (car set1)
                 (intersection-set (cdr set1) set2)))
          (t (intersection-set (cdr set1) set2))))
  (defun element-of-setp(x set)
    (cond ((null set) false)
          ((equal x (car set)) t)
          (t (element-of-setp x (cdr set)))))
  (intersection-set  (list 1 2) (list 2 3 4))
  </code></pre>
  
  <p>Running it reports the following error:</p>
  
  <pre><code>element-of-setp: Symbol’s value as variable is void: false
  </code></pre>
  
  <p>However, <code>element-of-setp</code> on its own seems to work properly:</p>
  
  <pre><code>#+begin_src emacs-lisp :tangle yes
  (defun element-of-setp(x set)
    (cond ((null set) false)
          ((equal x (car set)) t)
          (t (element-of-setp x (cdr set)))))
  (element-of-setp 1 (list 1 2 3))
  #+end_src
  
  #+RESULTS:
  : t  
  </code></pre>
  
  <p>What's the problem?</p>