我想从控制台读取所有行并将它们放在列表中,如何在Scheme中执行?
说,当程序运行时,用户将在控制台中输入许多行:
aaaa
1111
bbbbb
ccc
2323
dddd
4444
我的Scheme代码将读取所有这些并过滤数字并将它们输出到控制台。
怎么做?
答案 0 :(得分:0)
这是一个不断从默认输入端口读取并将其显示到默认输出端口的函数。
(define (read-and-display)
(let ((x (read)))
(if (not (eof-object? x))
(begin
(display x)
(newline)
(read-and-display)))))
如果您的Scheme实现支持unless
,则上述功能可以简化为:
(define (read-and-display)
(let ((x (read)))
(unless (eof-object? x)
(display x)
(newline)
(read-and-display))))