% Macro WITH-OPEN-STREAM
Macro WITH-OPEN-STREAM
with-open-stream
(
var stream)
declaration* form*
=> result*
var - 変数名
stream - フォーム。評価されストリームが生成されます。
declaration - 宣言式。評価されません。
form - 暗黙のprogn
result - formの返却値
with-open-stream
は、streamの一連の操作を実行し、
値を返却し、そしてstreamをクローズします。
varはstreamの値を束縛し、
それからformが暗黙のprognとして実行されます。
streamはwith-open-stream
から退出するときに、
退出が通常時か非通常時に関わらず
どんな時でも自動的に閉じられます。
streamは動的エクステントであり、formから退出されたときに
そのエクステントは終了します。
form内で変数varに代入を施行したときの結果は未定義です。
(with-open-stream (s (make-string-input-stream "1 2 3 4"))
(+ (read s) (read s) (read s))) => 6
streamは(退出時に)クローズされます。
なし。
なし。
なし。