忘れ去られてゆく過去
Mew を起動しようとしたら、次のメッセージが出て動かなくなってしまいました。問題は Mew ではなくて、どうやら mhc にありそうです。
Setting up Mew world... eval-buffer: Loading ‘/Users/umd/elisp/mhc-snap20100807/emacs/mhc-summary.el’: old-style backquotes detected!
StackOverflow によると、"`" という関数があるようで、これは下記のように簡略して書けるようになったとのこと。
- (` (and (stringp (, string)) (insert (, string))))) + `(and (stringp ,string) (insert ,string)))
(` (...) )
の大きい括弧が不要になって、(, string)
の括弧もはずれて ,string
のようになるのだそうです。要は "`" や "," や ",@" を使うために括弧が不要になったよ!ということなんですね。
日本語での情報も探してみると、山本さんのページが見つかりました。バッククォート自体はこの説明が理解しやすい。
Emacs 関係の日本語ドキュメントは古いものばかりです。Backquote の説明は、古い文章では「12.マクロ」内の「12.5 バッククォート」にあり、最新の文章では「10 Evaluation」内の「10.3 Backquote」にあります。
古い日本語ドキュメント内には下記のような記載がされています。
19.29版よりまえのEmacsの旧版では ... (略) ... この構文も受け付けますが, これはEmacsの旧版との互換性のためであり, 新しいプログラムでは使わないことを勧めます.
この時すでに Obsolete になっていたんですね。19.29 のリリースは 1995-06-19 とのことなので、廃止されるまで 22 年間も保守されてきたようです。すごい!
ということで、mhc の対象部分は手動で修正して動くようになりました。今でも Emacs を使っているのは Mew と mhc と howm と trr と SKK のためなのです。
ところで、最新のドキュメントには上記で引用した部分がありませんので、このような構文 (` (...))
があったという事実は忘れ去られてしまうのでしょうね。
P.S. lookup もこの Backquote 構文を使っていたので修正するハメになりました(>_<)