[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 メーリングリストの案内