Quoting Robert P. Goldman ([EMAIL PROTECTED]):
> What should one do if one wishes to make a hash table of objects is CMUCL?
[...]

Well, I have never done this on CMUCL, but browsing the sources I find
support for customized hash tables which looks similar to what other
Lisps provide.  (Allegro CL supports a keyword argument :HASH-FUNCTION
to MAKE-HASH-TABLE, which can be used with a non-standard :TEST
function.)

CMUCL does not have this argument, but instead dispatches on the test
function to find the appropriate hash function from a list of
non-standard functions, which can be extended using
DEFINE-HASH-TABLE-TEST.

I'd recommend writing a specialized function over using EQUALP if speed
is important, since writing a fast hash function is easier if you know
the precise requirements, whereas EQUALP hashing is very general.  For
example, hashing an (UNSIGNED-BYTE 8) `octet string' takes significantly
longer than the EQUAL hash of a similar Lisp string on ACL, but can be
made just as fast if you do it yourself.  William Newman probably knows
more about EQUALP hashing on CMUCL though. ;-)

Reply via email to