diff options
Diffstat (limited to 'csc/hash-map.csc')
| -rw-r--r-- | csc/hash-map.csc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/csc/hash-map.csc b/csc/hash-map.csc index ae5c3df..be9e507 100644 --- a/csc/hash-map.csc +++ b/csc/hash-map.csc @@ -26,11 +26,15 @@ (define (key-hash<? k1 k2 cmp) (cond ((< (key-hash-hash k1) (key-hash-hash k2)) #t) ((> (key-hash-hash k1) (key-hash-hash k2)) #f) - (else (< (cmp (key-hash-value k1) (key-hash-value k2)) 0)))) + (else (cmp (key-hash-value k1) (key-hash-value k2))))) (define (key-hash=? k1 k2 cmp) - (and (= (key-hash-hash k1) (key-hash-hash k2)) (= 0 (cmp (key-hash-value k1) (key-hash-value k2))))) + (let ((v1 (key-hash-value k1)) + (v2 (key-hash-value k2))) + (and (= (key-hash-hash k1) (key-hash-hash k2)) + (not (cmp v1 v2)) + (not (cmp v2 v1))))) (define-record-type <node> |
