[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
(EQUAL "a" "a") -> ()
- To: KMP at MIT-MC, BARMAR at MIT-MC
- Subject: (EQUAL "a" "a") -> ()
- From: Mark L. Miller <MILLER at MIT-AI>
- Date: Wed, 1 Oct 80 03:49:00 GMT
- Cc: JHendler at BBNA, JShelton at BBNA, TBlocker at BBNA, Pattermann at BBNA, Kehler at BBNA, BUG-LISP at MIT-MC
- Original-date: 30 September 1980 23:49-EDT
Regarding this discussion:
Date: 29 SEP 1980 0910-EDT
From: KMP at MIT-MC (Kent M. Pitman)
The primary use of "..." is to get an object which prints a certain way...
"..." is defined on non-Multics Maclisp to return an UNINTERNED
SYMBOL which has been SETQ'd to itself (so that it self-evaluates).
While I understand the reason for this situation and am capable of using
SAMEPNAMEP (sigh) instead of EQUAL to get around it, let's not criticize
the complaint -- it is a legitimtate gripe -- i.e., the semantic rule of
thumb that "if two things LOOK THE SAME they are almost always EQUAL" has
been violated, and thus this behavior can reasonably be called a "bug".
Off- hand I can't think of an efficient approach to solving it, but perhaps
intern-ing "strings" on MacLisps that implement them as symbols should be
considered? I have had several bug-messages come to me (at TI) on this
subject in the last month. Users of other dialects such as Yale/UCI LISP
are used to having "real" strings, i.e., "foo" works and (EQUAL "a" "a")
returns T -- so this is seen as a deficiency of MacLISP. (But then the SETQ
introduces at least a small possibility of name clash lossage -- so perhaps
we should all stick to '|foo|, which is a true QUOTEd interned symbol -- or
plead for true strings as a new datatype in those implementations that
lack them. Regards, Mark