如何在 Lisp 中读取输入流直到 EOF?在 C 中,你可以这样做:
while ((c = getchar()) != EOF)
{
// Loop body...
}
我希望能够将数据通过管道传输到我的 Lisp 程序,而无需提前指定数据大小。这是我现在正在做的事情的一个例子:
(dotimes (i *n*)
(setf *t* (parse-integer (read-line) :junk-allowed T))
(if (= (mod *t* *k*) 0) (incf *count*)))
在这个循环中,变量*n*
指定了我要传递给程序的行数(该值是从输入的第一行读取的),但我只想处理任意且未知的行数,当它到达时停止流的末端。