diff --git a/collects/scheme/private/for.ss b/collects/scheme/private/for.ss index d41ff8da7a..c2c933d094 100644 --- a/collects/scheme/private/for.ss +++ b/collects/scheme/private/for.ss @@ -475,40 +475,36 @@ void)))) (define in-port - (let ([mk (lambda (p r) - (make-do-sequence - (lambda () - (values r values p void - (lambda (x) (not (eof-object? x))) - void))))]) - (case-lambda - [() (mk (current-input-port) read)] - [(r) (mk (current-input-port) r)] - [(r p) - (unless (and (procedure? r) (procedure-arity-includes? r 1)) - (raise-type-error 'in->port "procedure (arity 1)" r)) - (unless (input-port? p) (raise-type-error 'in-port "input-port" p)) - (mk p r)]))) + (case-lambda + [() (in-port (current-input-port) read)] + [(r) (in-port (current-input-port) r)] + [(r p) + (unless (and (procedure? r) (procedure-arity-includes? r 1)) + (raise-type-error 'in-port "procedure (arity 1)" r)) + (unless (input-port? p) (raise-type-error 'in-port "input-port" p)) + (make-do-sequence + (lambda () + (values r values p void + (lambda (x) (not (eof-object? x))) + void)))])) (define in-lines - (let ([mk (lambda (p m) - (make-do-sequence - (lambda () - (values (lambda (p) (read-line p m)) - values p void - (lambda (x) (not (eof-object? x))) - void))))]) - (case-lambda - [() (in-lines (current-input-port) 'any)] - [(p) (in-lines p 'any)] - [(p mode) - (unless (input-port? p) (raise-type-error 'in-lines "input-port" p)) - (unless (memq mode '(linefeed return return-linefeed any any-one)) - (raise-type-error - 'in-lines - "'linefeed, 'return, 'return-linefeed, 'any, or 'any-one" - mode)) - (mk p mode)]))) + (case-lambda + [() (in-lines (current-input-port) 'any)] + [(p) (in-lines p 'any)] + [(p mode) + (unless (input-port? p) (raise-type-error 'in-lines "input-port" p)) + (unless (memq mode '(linefeed return return-linefeed any any-one)) + (raise-type-error + 'in-lines + "'linefeed, 'return, 'return-linefeed, 'any, or 'any-one" + mode)) + (make-do-sequence + (lambda () + (values (lambda (p) (read-line p m)) + values p void + (lambda (x) (not (eof-object? x))) + void)))])) (define (in-hash ht) (unless (hash? ht) (raise-type-error 'in-hash "hash" ht))