aboutsummaryrefslogtreecommitdiffstats
path: root/csc/hash-map.csc
diff options
context:
space:
mode:
Diffstat (limited to 'csc/hash-map.csc')
-rw-r--r--csc/hash-map.csc8
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>