title: Lisp basic print function getting user input
body: <p>I am supposed to write a program that gets simple user input as a string and the code supposed to writes back a response (name, are you a person etc.) The program suppose to terminate when word 'bye' is typed. The code is below:</p>
  <pre><code>(defun x()
      (setq words &quot;empty&quot;)
      (loop while (string/= words &quot;BYE&quot;)
          (setq words (read-delimited-list #\~)   
          (write-line words)
          (format t &quot;ROBBIE%: Hello, who are you?&quot;)
          (case (string-include &quot;I'm&quot; words)
              (format t &quot;ROBBIE%: Nice to see you, how are you?&quot;)
              ((string-include &quot;Hi&quot; words)
              (format t &quot;ROBBIE%: How are you?&quot;)
              (or (string-include &quot;fine&quot; words) (string-include &quot;person&quot; words))
              (format t &quot;ROBBIE%: No I'm a computer&quot;)))
              (format t &quot;BYE&quot;))
  </code></pre>
  <p>(x)</p>
  <p>However, when I compile this on program 2 errors pop up:</p>
  <p>Line2:3 warning: undefined variable: COMMON-LISP-USER:: WORDS</p>
  <p>Line3:3   error: during macroexpansion of (LOOP WHILE (STRING/= WORDS &quot;BYE&quot;) ...). Use <em>BREAK-ON-SIGNALS</em> to intercept.</p>
  <p>I've done programming in python but this is extremely complicated lang for me and I need some help understanding why this isn't working? Any advice is greatly appreciated!</p>