[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Bugs found in MCL 2.0b1p2
- To: firstname.lastname@example.org (George Williams)
- Subject: Re: Bugs found in MCL 2.0b1p2
- From: meehan@Pa.dec.com (Jim Meehan)
- Date: Tue, 4 Jun 91 08:25:23 PDT
- Cc: email@example.com
- In-reply-to: Message of Tue, 4 Jun 91 06:58:29 CDT from firstname.lastname@example.org (George Williams) <9106041158.AA26589@hsvaic.boeing.com>
Isn't the value of *xxx* equal to the specific "(nil)" that was
specified in the defconstant? The value that was inserted into the
list was the value of *xxx*, not just any "(nil)".
Yes, it's EQUAL and EQL but not necessarily EQ. Your initial message
said that 'the "(nil)" part of the list structure fails to be EQ to
the (defined) constant (identifier),' so I was just explaining why
it wasn't necessarily going to be EQ.
> (defconstant *xxx* '*xxx*) will "work" because interned symbols are
> guaranteed to be EQ, at least until there's some other reference to
> that symbol.
Are you saying that this will quit working because another reference
gets made to the symbol?
Sorry, verbal clumsiness on my part. If I have a tree of symbols and
I want to "mark" certain places, I shouldn't use just any ordinary
interned symbol, e.g., X, as my mark, because that symbol might already
occur in the tree, so I wouldn't be able to tell whether the X was
my mark or one of the original symbols. Using (gensym) or (cons nil
nil) will create a new object that cannot possibly already be in the
tree, and it can be compared with EQ.