[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

EQUAL isn't really correct, I agree



Received: from C.CS.CMU.EDU by SU-AI.ARPA with TCP; 17 Sep 85  19:37:44 PDT
Received: ID <FAHLMAN@C.CS.CMU.EDU>; Tue 17 Sep 85 22:38:35-EDT
Date: Wed, 18 Sep 1985 02:38:00 -0000
Message-ID: <FAHLMAN.12144111807.BABYL@C.CS.CMU.EDU>
Sender: FAHLMAN@C.CS.CMU.EDU
From: "Scott E. Fahlman" <Fahlman@C.CS.CMU.EDU>
To:   Rem@MIT-MC.ARPA
Cc:   COMMON-LISP@SU-AI.ARPA
Subject: EQUAL isn't really correct, I agree
Comment: Remailed at SU-AI after delay caused by distribution list problem.


    Once this super-general function is properly defined and implemented,
    special cases can be described in a uniform way as canned arguments to
    this function, and then can be handcoded more efficiently if desired.

    In many cases there are oodles of special-case functions and nothing
    properly general in CL currently. Perhaps general functions should be
    defined and some of the special cases flushed, as such cases are recognized?
    Super-general-EQUAL could be the first such super-general function?

Gee, maybe we should provide COND and DEFMACRO and let the user code up
whatever equality predicate he really wants.  Would that be general
enough?  Oops, we did that already...

But seriously, it is a very serious step to put in some piece of
special-purpose programmable mechanism for some random part of the
language.  This might be called for in the case of iteration (if we
could ever agree on a syntax for something like the loop macro), but I
can't see any compelling reason to put in yet another load of hair for a
customizable equality predicate.  If there are kinds of equality that
are FREQUENTLY needed and are not currently provided (and I think there
are a couple) we should consider adding these, but let's not go
overboard (yet again).

-- Scott