Better hashcodes

db4
Slava Pestov 2008-04-05 07:35:51 -05:00
parent 1cc72a386e
commit d5667fd4b1
2 changed files with 6 additions and 3 deletions

View File

@ -225,9 +225,10 @@ M: tuple equal?
M: tuple hashcode* M: tuple hashcode*
[ [
dup tuple-size -rot 0 -rot [ [ class hashcode ] [ tuple-size ] [ ] tri
swapd array-nth hashcode* bitxor >r rot r> [
] 2curry reduce swapd array-nth hashcode* sequence-hashcode-step
] 2curry each
] recursive-hashcode ; ] recursive-hashcode ;
! Deprecated ! Deprecated

View File

@ -118,6 +118,8 @@ GENERIC: hashcode* ( depth obj -- code )
M: object hashcode* 2drop 0 ; M: object hashcode* 2drop 0 ;
M: f hashcode* 2drop 31337 ;
: hashcode ( obj -- code ) 3 swap hashcode* ; inline : hashcode ( obj -- code ) 3 swap hashcode* ; inline
GENERIC: equal? ( obj1 obj2 -- ? ) GENERIC: equal? ( obj1 obj2 -- ? )