#:g1: 関数名にハイフンを使うようになったのはいつ頃からなのか

Posted 2008-01-11 14:32:00 GMT

LISPでは、関数や変数の名前にハイフンを使いfoo-if-barのような名前を付けたりして、これが、それなりにLisp的な特徴とみなされているかと思います。
非常にどうでも良いことなのですが、急に、関数名にハイフンを使うようになったのはいつ頃からなのか、ということが気になり出して仕方なくなってしまい、色々調べてみました。本当にどうでも良いことなのですが…。
そもそもなんで疑問に思うかといえば、LISP 1.5をちょっといじってみて、マニュアルや古い文献のプログラム等を眺めてみているのですが、今だったらハイフンで区切るような、例えば、SUPER-REVERSEのような関数名が、SUPERREVERSEだったりするのです。これだと、読み難いのですが、しかし、他の長い名前も全然ハイフンが使われていないのです。
LISP 1.5では、変数や関数にハイフンを含められないのかといえば、そういう制限もなく、普通に使ってプログラムも書けます。
そうなってくると、じゃあ、一体いつからなんだということになってきてしまうのです。
それで、とりあえず、調べてみたのですが、PDP-1 LISPは、ハイフン抜き、直系のPDP-6 LISPも抜きで、手元のソースを眺める限りでは、その次のMACLISPで初めて登場するようです。
大体、1974年位が境なんですが、なんでその辺なのかは良く分かりません。
それで、その後1978以降MIT Lispマシン周辺で、やたら長い名前をハイフンでつなげた名前が爆発的に増えます。
ちなみに、INTERLISP系ですが、こちらは、BBN-LISPから、INTERLISP-Dまであんまりハイフンで継げた名前はみかけません。
以上、まったく役に立ちようもない探究でした。
ちなみに、これも非常にどうでも良いことなのですが、過去のMITのAIメモを眺めたりしている過程で、内部的な関数の頭に%ではなく、*を付けるという習慣を発見しました。PDP-6からMACLISP初期のことで、大体40年前のことなのですが、例えば、2引数しか取らない限定的なGREATERPは、*GREAT、といった風になっています。頭に%を付けるのは、多分これもLispマシン周辺から来てるんじゃないかと思うんですが、これまた、本当にどうでも良いことでございまして…。

comments powered by Disqus