我正在尝试通过标准输入读取传递给鸡计划脚本的所有行,并将它们放入列表中,但我似乎无法正确确定何时结束输入。另一个测试脚本似乎表明测试(eof-object? results-of-last-read-line-call)
是合法的测试,但在下面的示例中,它只是坐在那里无限阅读。
我整理了以下测试脚本。我打电话给它cat some_file.txt | this_script.scm
#! /usr/local/bin/csi -script
(define (read-from-stdin collection line)
(if (eof-object? line) ; bad test?
collection
(read-from-stdin (cons collection line) read-line)
) ; yes, i know atypical formatting. Done so you can see they're all there
)
(for-each print (read-from-stdin '() (read-line)))