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は(退出時に)クローズされます。
なし。
なし。
なし。