Racket interaction in DrRacket and on terminal
<p>This program works fine in DrRacket :</p>

<pre><code>(define (display-state input data)
  input)

(define (update-state input data) 
  data  )

(define (main input data)  
    (displayln (display-state input data))
    (main (read-line (current-input-port) 'any) (update-state input data)))

(main "" data)
</code></pre>

<p>It's the skeleton of a program that reads continually from a  terminal interaction and does something with the user's input and a data state.</p>

<p>However, on the terminal, using </p>

<pre><code>raco exe prog.rkt
</code></pre>

<p>It terminates after the first input. Anyone know why? Is it a bug / feature of read-line or current-input-port ?</p>