2
我试图实现一个流 - >文件函数,该函数将字符流打印到文件中。我觉得我接近一个解决方案,但不知道如何完成这一点。球拍计划 - 将字符流写入文件
(define stream->file
(lambda (filename str)
(let ((output (open-output-file filename)))
(letrec
((build-output-stream
(lambda (str)
(let ((char (write-char (stream-first str) output)))
(if (eof-object? char)
(begin
(close-output-port output)
empty-stream)
(stream-cons char (build-output-stream (stream-rest str))))))))
(build-output-stream str)))))
在输出中,除了输入#<stream>
之外,这不起作用。它创建一个文件,但不写入它。我错过了什么?
什么是您的流?另外,如果我是对的,没有理由使用'stream-cons'并返回'empty-stream'。返回“输出”会更有意义。 'letrec'也是无意义的,你可以使用一个命名的let来代替。 –