Chris Barts <puonegf+hfrarg@tznvy.pbz> wrote:
+---------------
| Juan R. wrote:
| > Yeah, the problem is that LISP is different and too many people do not
| > notice that.
|
| Indeed. Something else about Lisp that it's difficult to notice from the
| outside is that it natively recognizes many different types of equality
| and thus has what seems like an embarrassing amount of equality tests.
| When I was first learning the language, I was confused about why we need
| equal, equalp, eq, and eql.
+---------------
The best [IMHO] commentary on why the Common Lisp standard does not
provide only one equality test is here:
http://www.nhplace.com/kent/PS/EQUAL.html
It starts by discussing why the Common Lisp standard does not
provide a generic COPY function, and then uses that lemma in
the discussion of EQUAL:
The design issues here are pretty much the same as they are for
COPY. If COPY can't be done properly, then neither can EQUAL. And,
in fact, that's the case. There is no uniquely determined equality
function for complex structures--there are only arbitrary ones.
-Rob
-----
Rob Warnock <rpw3@rpw3.org>
627 26th Avenue <URL:http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607