[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: redefining Common Lisp functions
In the process of implementing CommonObjects on CommonLoops (COOL)
I found it necessary to re-implement the following functions:
EQUAL, EQL, EQUALP, TYPEP, and TYPE-OF. I tried a number of ways
to do this, but none seemed safe (= infinite recursions) or
effective (= slowed down the system), except to provide a macro
which a user actually wanting the semantics of the redefined functions
could invoke. This macro defined the functions on uninterned symbols
then shadowing imported the symbols into the package where the user
wanted them. Although this sounds inconvenient, it did allow me to
match CommonObjects semantics (at the user's option, however) which
require these functions to be user specializable, i.e. generic functions.
Jim Kempf kempf@hplabs.hp.com
PS: Portable CommonLoops already allows PRINC and other print functions
to be specialized via. the :PRINT-FUNCTION option. Don't remember if
that made it into the standard, since my CLOS specification is at the
office.