(define newlines 0) ; Should be encapsulated somehow. (define (make-newline-counting-input-port port) (make-input-port (lambda () ; read-char (let ((c (read-char port))) (if (not (eq? c #\newline)) c (begin (set! newlines (add1 newlines)) c)))) char-ready? ; char-ready? (lambda () ; close (close-input-port port))))