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*
はプログラムにパイプしている行数を指定します (値は入力の最初の行から読み取られます) が、任意の不明な行数を処理し、到達したら停止したいと思います。ストリームの終わり。