[Mew-dist 123] Re: delq か delete か
Mikio Nakajima
gy2m-nkjm at example.com
1996年 11月 23日 (土) 06:34:36 JST
中島です。分りにくいので、表題を変更しました。
From: Shuhei KOBAYASHI <shuhei-k at example.com>
Subject: [Mew-dist 119] Re: Mew-1.52 がコンパイルできない
Date: Fri, 22 Nov 1996 23:38:30 +0900
Message-ID: <19961122233830S/shuhei-k at example.com>
shuhei-k> lisper 見習いです(^^; さっきまで EoPL のゼミをやってました。
よく言いますよ、れっきとした Lisper じゃないですか :-)。
shuhei-k> list を eq で比較するのは心理的に抵抗があるので、私はいつも equal を
shuhei-k> 使うようにしています。 それに auto-mode-alist の場合には以下のような問
shuhei-k> 題がありますので、ここはやはり delete だと思います。
shuhei-k>
shuhei-k> (let ((lst '(("foo" . foo) ("bar" . bar) ("foo" . foo))))
shuhei-k> (delq (rassq 'foo lst) lst))
shuhei-k>
shuhei-k> => (("bar" . bar) ("foo" . foo))
shuhei-k>
shuhei-k> (let ((lst '(("foo" . foo) ("bar" . bar) ("foo" . foo))))
shuhei-k> (delete (rassq 'foo lst) lst))
shuhei-k>
shuhei-k> => (("bar" . bar))
それは私も気が付いていましたが、
(1)auto-mode-alist の中に rassq で複数の mh-letter-mode が設定され
ている可能性は高くないのでは。
(2)もし(1)のような可能性があったときでもサポートするべきだ、と言う
のであれば、1 回の delete で済ませるのではなく、loop の中で
rassq を実行して rassq の返り値が null になるまで delq すべきだ。
("/drafts/[0-9]+\\'" . mh-letter-mode)
^^^^^^^^^^^^^^^^^^^
何故なら ^^^^ の部分を異なる正規表現で表現している可能性もあるか
ら。
と思ったので、delete を押さなかったのでした。
でも 1 番確実なのは、auto-mode-alist の先頭に
("/drafts/[0-9]+\\'" . mew-draft-mode)
のようなものを cons して mew-draft-mode が mew.el のロード前でもコー
ルできるようにするのが一番 robust のような気がします。
# これだとメールを書いていて途中で中止して保存し、また後で書くこと
# ができますし。
中島幹夫 <gy2m-nkjm at example.com>
Mew-dist メーリングリストの案内