2010年7月18日日曜日

Emacs LispでファイルIOその2

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 件のコメント:

コメントを投稿