open,closeを書いたのでついでに with-open-fileも書いてみた。
(defmacro with-open-file (clause &rest body)
(destructuring-bind
(direction filename stream)
(let ((tmp (reverse clause)))
(if (= (length tmp) 2)
(cons :input tmp)
tmp))
`(let ((,stream (open ,filename ,direction)))
(prog1
(progn
,@body)
(close ,stream)))))
0 件のコメント:
コメントを投稿