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>