[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
multiple-value-bind
- From: Katsumi Yamaoka <yamaoka@xxxxxxx>
- Date: Fri, 18 Sep 2009 08:40:02 +0900
- X-ml-name: emacs-w3m
- X-mail-count: 11062
先端の XEmacs 21.5 で shimbun の記事が読めなくなりました。原因は
`multiple-value-bind' マクロの仕様が変わったためです。それを XEmacs
のバグだと思って書きはじめた記事が、以下の thread にあります:
http://news.gmane.org/group/gmane.emacs.xemacs.beta/thread=30500/force_load=t
この式
(multiple-value-bind (X Y)
'(1 2)
(list X Y))
は以前の XEmacs や Emacs では (1 2) を返すのですが、先端の XEmacs
21.5 では ((1 2) nil) が返ってきます。
ぼくは Common Lisp は知らないので当てずっぽうで書きますが、どう
やら multiple-value という特別な object があるようで、以前の
XEmacs や Emacs はそのまがいものを提供していたのに対し、XEmacs
21.5 だけは本来の動作になったということみたいです。
上記のような式の場合は、単なる list を multiple-value に変換する
関数 `values-list' を使わなければなりません。
(multiple-value-bind (X Y)
(values-list '(1 2))
(list X Y))
こうすれば先端の XEmacs 21.5 でも shimbun の記事を読めるようにな
ります。sb-cgi-board.el、sb-cnet.el、sb-multi.el で対策しました。
--
山岡