kuno@gssm.otsuka.tsukuba.ac.jp writes:

> > これは、4.x BSDに付いてきたFranz Lispにもあった機能のような記憶があり
> > ます。readerが、こういうシンボルをinternする時に、自動的に関数を定義す
> > るんですよね、たぶん。
> 
>   え、それじゃそういう名前の全然別の関数を定義したいとき困っちゃ
> うじゃないですか。やっぱり「呼ばれた瞬間に未定義だったら定義」じゃ
> なくちゃ。

さすがに、readerが関数を作るのは「その名前のシンボルを初めて読んだとき
(シンボルテーブルになくて、新たにinternする時)」だけでしょう。

なので、たとえば、ユーザが
(defun cr (&optional stream) (terpri stream))
とか定義するならば問題ないです。

readerが定義した後に、defunでその定義が上書きされることになるでしょう
から。

>                    とわざと難癖をつける                 久野

問題が起きるとすれば、「未定義関数を呼んだ」というエラーが起きてくれな
いと困る時、かな。
                                前田敦司