该程序在 DrRacket 中运行良好:
(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)
它是一个程序的骨架,它不断地从终端交互中读取数据,并对用户的输入和数据状态进行处理。
但是,在终端上,使用
raco exe prog.rkt
它在第一次输入后终止。有谁知道为什么?它是 read-line 还是 current-input-port 的错误/功能?