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*
[
dup tuple-size -rot 0 -rot [
swapd array-nth hashcode* bitxor
] 2curry reduce
[ class hashcode ] [ tuple-size ] [ ] tri
>r rot r> [
swapd array-nth hashcode* sequence-hashcode-step
] 2curry each
] recursive-hashcode ;
! Deprecated

View File

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