anchor.diff:      0
       (+ 1 (max (height (cadr tree)) (height (caddr tree))))))
   
  +; search the bst returning the string or nil
  +(defun look (tree str)
  +  (cond ((null tree) nil)
  +        ((string= str (car tree)) str)
  +        ((string< str (car tree)) (look (cadr tree) str))
  +        (t (look (caddr tree) str))))
  +
   ; load a text file in and add each line to a binary search tree, returning it
   (defun read-data ()
     (let ((tree nil))
  
positive.code: ; insert a string into a binary search tree and return it
  (defun insert (tree str)
    (if (null tree)
  
negative.code:           (setf tree (insert tree line)))))
      tree))
  
  ; main program loop
  (defun main (tree)
    (let ((words (parse (read-line))))
      (unless (string= (car words) "END")
        (dolist (bad (remove-if (lambda (w) (look tree w)) words))
          (format t "~a is spelled wrong!~%" bad))
        (main tree))))
  
  (let ((tree (read-data)))
    (format t "Loaded the words into a tree with height =  ~a.~%" (height tree))
    (main tree))
  
  