Re: Thank you!(Re: [Q] missing car/cdr)
kuno@gssm.otsuka.tsukuba.ac.jp writes:
> > これは、4.x BSDに付いてきたFranz Lispにもあった機能のような記憶があり
> > ます。readerが、こういうシンボルをinternする時に、自動的に関数を定義す
> > るんですよね、たぶん。
>
> え、それじゃそういう名前の全然別の関数を定義したいとき困っちゃ
> うじゃないですか。やっぱり「呼ばれた瞬間に未定義だったら定義」じゃ
> なくちゃ。
さすがに、readerが関数を作るのは「その名前のシンボルを初めて読んだとき
(シンボルテーブルになくて、新たにinternする時)」だけでしょう。
なので、たとえば、ユーザが
(defun cr (&optional stream) (terpri stream))
とか定義するならば問題ないです。
readerが定義した後に、defunでその定義が上書きされることになるでしょう
から。
> とわざと難癖をつける 久野
問題が起きるとすれば、「未定義関数を呼んだ」というエラーが起きてくれな
いと困る時、かな。
前田敦司
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735