[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
**DRAFT** issue QUOTE-MAY-COPY
- To: firstname.lastname@example.org
- Subject: **DRAFT** issue QUOTE-MAY-COPY
- From: Jon L White <email@example.com>
- Date: Thu, 12 Jan 89 03:43:45 PST
- Cc: jeff%aiai.edinburgh.ac.uk@NSS.Cs.Ucl.AC.UK, firstname.lastname@example.org
- In-reply-to: Aaron Larson's message of Wed, 11 Jan 89 10:14:09 CST <8901111614.AA02583@pavo.src.honeywell.com>
re: I don't think I quite agree with JonL's statement about the "only reason",
it appears to me that it would also be important in:
(defun foo () '(x y z))
(tailp (foo) (cons 'a (foo)))
Hmmm, do you remember that the TAILP proposal got bogged down when
it was noticed that a :TEST argument was necessary?
re: My argument was an attempt to isolate the times at which the copying could
occur, and to point out that the times are not something that discussions
about QUOTE and EVAL can easily describe.
Well, I'm not sure what the problem is with focusing on EVAL/COMPILE.
I sent out my note before reading your suggestion about "promotion";
that sounds like what I've been saying all along. Namely, that just
because something is READ into a lisp doesn't mean it is a constant;
it only becomes a "constant" when processed by EVAL (or a compiler)
in an evaluation context. "Promotion" wouldn't be a bad term for
that process, and might help "isolate the times", as you say.
However, we still haven't seen any good reason as to why EQ or EQL
must be the equivalence predicate for constants; why not EQUAL? or
COALESABLEP? Happily, symbols have the EQ-for-COALESABLEP property,
and characters and fixnums have the EQL-for-COALESABLEP property.
But so what if random strings, lists or defstructs don't have these
-- JonL --