[mew-dist 22278] Re: accelerating by-folder
Kazu Yamamoto ( 山本和彦 )
kazu at example.com
2002年 11月 14日 (木) 13:17:54 JST
From: KOIE Hidetaka (鯉江英隆) <hide at example.com>
Subject: [mew-dist 22273] Re: accelerating by-folder
> おもったよりも時間はかからないみたいです。
>
> (let ((alist (make-list 2000 '("+foo/foo" . "foo")))
> (case-fold-search nil))
> (setq alist (nreverse (cons '("+FOO/foo" . "foo") alist)))
> (string-match "[A-Z]"
> (mapconcat (lambda (x) (format "%s" (cdr x))) alist "")))
format() は不要でしょうね。あと、この方法では大きな文字列をたくさん作
るのでよくないと思います。
かなりトリッキーですが、以下のような方法ではどうでしょうか? mapcar は
組み込み関数ですが、うまく break しているようです。
(let ((alist (mew-local-folder-alist))
(case-fold-search nil)
found)
(catch 'break
(mapcar (lambda (x)
(cond
((and (stringp (cdr x)) (string-match "[A-Z]" (cdr x)))
(throw 'break (setq found (cdr x))))
((and (stringp (car x)) (string-match "[A-Z]" (car x)))
(throw 'break (setq found (car x))))))
alist))
found)
--かず
Mew-dist メーリングリストの案内