title: Lisp format and force-output
body: <p>I don't understand why this code behaves differently in different implementations:</p>
  
  <pre><code>(format t "asdf")
  (setq var (read))
  </code></pre>
  
  <p>In CLISP it behaves as would be expected, with the prompt printed followed by the read,  but in SBCL it reads, <em>then</em> outputs.  I read a bit on the internet and changed it:</p>
  
  <pre><code>(format t "asdf")
  (force-output t)
  (setq var (read))
  </code></pre>
  
  <p>This, again, works fine in CLISP, but in SBCL it <em>still</em> reads, then outputs.  I even tried separating it into another function:</p>
  
  <pre><code>(defun output (string)
     (format t string)
     (force-output t))
  (output "asdf")
  (setq var (read))
  </code></pre>
  
  <p>And it still reads, then outputs.  Am I not using <code>force-output</code> correctly or is this just an idiosyncrasy of SBCL?</p>