I&#39;m trying to get read-char to read a character as soon as it is typed, but read-char insists on buffering the input until a carriage return is entered.  The Racket reference says that the buffer mode is controlled by file-stream-buffer-mode, but it seems to have no effect.  (More confusingly, the doc says that line buffering, which I think is the behavior I&#39;m seeing, is not allowed on input ports.)  Here&#39;s the code:<br>
<br>(require (lib &quot;mzlib/etc&quot;))<br>(file-stream-buffer-mode (current-input-port) &#39;none)<br>(define (pushpull)<br>  (define (helper indent)<br>    (printf &quot;~aX~n&quot; (make-string indent #\space))<br>    (helper ((case (read-char)<br>
           ((#\l) add1)<br>           ((#\j) sub1)<br>           (else identity)) indent)))<br>  (helper 0))<br><br>(pushpull)<br><br>Thanks for helping,<br>RM<br>