mapcar2dolist

NAKAJIMA Mikio minakaji @ osaka.email.ne.jp
2001年 3月 12日 (月) 12:21:00 JST


At 12 Mar 2001 09:23:51 +0900,
Katsumi Yamaoka wrote:
 
> 中島さん> これ、bug-gnu-emacs @ gnu.org あたりに投稿するともっと色々コメ
> 中島さん> ントがもらえて楽しいかもしれませんね。
> 
> それって二回ばかり出したことがあるけれど、講読はしていないんです。
> ;; あんな話題でもいいんですか? (^^;;)
 
the GNU Emacs Lisp Reference Manual wrote:

>     If you write a function that you think ought to be added to Emacs
>     under a certain name, such as `twiddle-files', don't call it by
>     that name in your program.  Call it `mylib-twiddle-files' in your
>     program, and send mail to `bug-gnu-emacs @ gnu.org' suggesting we add
>     it to Emacs.  If and when we do, we can change the name easily
>     enough.

とありますので、この機能を追加すべきだ、という主旨なら良いのではないで
しょうか。ぼくも講読はしていませんが、過去にバイトコンパイラー、オプティ
マイズ関係の話題を投稿した際は、結構沢山のコメントをもらえました。


> 小林さん> Emacs 21 からは mapc が built-in になったので, side effect
> 小林さん> だけが目的の mapcar は mapc に書き換えるというのが筋じゃない
> 小林さん> かなぁ...
> 
> 小林さん> ;; mapc を持たない Emacsen に対しては APEL が mapc を提供す
> 小林さん> ;; る, と.
> 
> 昔 cl 今 built-in というくくりで APEL にまとめるのも良いかもしれません
> ね。Emacs 21 では他にもいろいろ便利なものができているので、目移りしま
> すが。
 
昔、tm-ja に投稿して守岡さんに却下されたコード (却下の理由はポータブル
なコーディングには map* を使うべきでない、ということでした) を SKK の
中に未練がましく残していたのですが...

(defun-maybe mapc (function sequence)
  "Apply FUNCTION to each element of SEQUENCE.
SEQUENCE may be a list, a vector, a bit vector, or a string.
--- NOT emulated enough, just discard newly constructed list made by mapcar ---
This function is like `mapcar' but does not accumulate the results,
which is more efficient if you do not use the results."
  (mapcar function sequence)
  sequence)

実は昨日投稿しようとした際、mapcar を使わずに mapc をエミュレートできな
いかとふと思い、投稿を中止したのですが、考えてみると、mapcar を使って
いてもコンパイル時に mapcar2while.el が while loop に展開してくれるか
ら、このまま APEL に入れてしまっても良いかな?

ついでにこんなものもありましたが...。

(defun-maybe mapvector (function sequence)
  "Apply FUNCTION to each element of SEQUENCE, making a vector of the results.
The result is a vector of the same length as SEQUENCE.
SEQUENCE may be a list, a vector or a string."
  (vconcat (mapcar function sequence) nil))
-- 
中島幹夫 <minakaji @ osaka.email.ne.jp>
         <m-nakajima @ descente.co.jp>
http://www.asahi-net.or.jp/~gy2m-nkjm/




More information about the APEL-ja mailing list