(define for-each-word (lambda (filename proc) (with-input-from-file filename (lambda () (let read-word ((char (read-char)) (word '())) (cond ((eof-object? char) #t) ((word-boundary? char) (proc (list->string (reverse word))) (read-word (read-char) '())) (#t (read-word (read-char) (cons char word)))))))))