chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] with-*-*-port


From: Tony Garnock-Jones
Subject: Re: [Chicken-users] with-*-*-port
Date: Sat, 1 Mar 2003 03:10:04 +1300

> (define with-input-from-port
>   (let ((values values))
>     (lambda (port thunk)
>       (let ((old ##sys#standard-input))
>         (##sys#dynamic-wind
>          (lambda () (set! ##sys#standard-input port))
>          thunk
>          (lambda () (set! ##sys#standard-input old))) ) ) ) )

Perhaps this would be better capturing standard-input on each
transition, rather than just the first?

(Untested code follows)

(define with-input-from-port
  (let ((values values))
    (lambda (inner thunk)
      (let ((outer '*))
        (##sys#dynamic-wind
         (lambda ()
           (set! outer ##sys#standard-input)
           (set! ##sys#standard-input inner))
         thunk
         (lambda ()
           (set! inner ##sys#standard-input)
           (set! ##sys#standard-input outer)))))))

Does this make sense, or is it too paranoid?

Tony
-- 
"How's my programming? 1-800-DEV-NULL"




reply via email to

[Prev in Thread] Current Thread [Next in Thread]