read-line版

read-lineして行毎にprintしてみたらまともに出力した。

(define (cat . name)
	(define (cat2 port)
		(let ((line (read-line port)))
			(if (eof-object? line)
				#t
				(begin (print line) (cat2 port)))))
	(define (loop lis)
		(if (null? lis)
			#f
			(begin (cat2 (open-input-file (car lis)))
				(loop (cdr lis)))))
	(apply loop name))


cat程度でこれはちょっと汚いな。