I'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'm seeing, is not allowed on input ports.)  Here's the code:<br>
<br>(require (lib "mzlib/etc"))<br>(file-stream-buffer-mode (current-input-port) 'none)<br>(define (pushpull)<br>  (define (helper indent)<br>    (printf "~aX~n" (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>