球拍方案 - 将字符流写入FIle

时间:2016-12-05 07:25:33

标签: scheme lisp racket

我正在尝试实现一个stream->文件函数,该函数接受一个字符流并将其打印到文件中。我觉得我接近一个解决方案,但无法弄清楚如何完成这个。

(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>之外,这不做任何其他事情。它会创建一个文件,但不会写入文件。我错过了什么?

0 个答案:

没有答案