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. ;-)
