Raymond Toy <[EMAIL PROTECTED]> writes:
> If you're a newbie, I think this is even worse:
>
> * (setf zot 42)
> ;
>
> ; Warning: This variable is undefined:
> ; ZOT
> ;
> 42
> * zot
> 42
> * (describe 'zot)
> ZOT is an internal symbol in the COMMON-LISP-USER package.
> It is a undefined variable; its value is 42.
>
> How good is that to a newbie? It's says it's undefined, but I just
> defined it! And it prints out the value I gave! Other undefined vars
> don't do that! But describe says it's undefined! What gives?
It certainly looks strange, but normal computer users do not expect to
understand every detail of what is going on. A standard newbie might
make fun of it, but as long as what he/she wants happens, he will not
care too much.
> So, I think the default value is the best. At least you're warned.
Well, you get a warning only once. This way you get a warning each
time. :)
> However, if someone wants to make it so these top-level variables
> aren't special, and has a patch, that might be useful.
Just setting the default value of ext:*top-level-auto-declare* to nil
would do just that - I bet you meant "so these top level variables
aren't undefined"..?
Regards,
Mario.