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.


Reply via email to