|  | ANSI Common Lisp  21 Streams  21.2 Dictionary of Streams 
 
| 21.2.33  with-open-stream | Macro |  
 
 Syntax:
with-open-stream
(var stream)
		   {declaration}* 
		   {form}*
  {result}* 
Arguments and Values:
var - a variable name.
stream - a form; evaluated to produce a stream.
 
declaration - a declare expression; not evaluated.
 
forms - an implicit progn.
 
results - the values returned by the forms.
 
Description:
with-open-stream performs a series of operations on 
stream, returns a value, and then closes the stream.
Var is bound to the value of stream,
and then forms are executed
as an implicit progn. 
stream
is automatically closed on exit from with-open-stream,
no matter whether the exit is normal or abnormal.
The stream has dynamic extent;
its extent ends when the form is exited.
 
The consequences are undefined if an attempt is made to assign the 
variable var with the forms.
 
Examples:
 (with-open-stream (s (make-string-input-stream "1 2 3 4"))
    (+ (read s) (read s) (read s)))  6
Side Effects:
The stream is closed (upon exit).
See Also:
close
 
Allegro CL Implementation Details:
 None. |