aboutsummaryrefslogtreecommitdiffstats
path: root/csc/hash-map.csc
diff options
context:
space:
mode:
authorRose Hogenson <rhogenson@posteo.net>2022-07-02 23:04:28 -0700
committerRose Hogenson <rhogenson@posteo.net>2022-07-02 23:04:28 -0700
commit37e086d27d478246e72b8f5c1b75ed5d092495fa (patch)
treebae0ac5e3c7f0984ef259da6ad5d6f094b64e588 /csc/hash-map.csc
parentAdd update conversion. (diff)
downloadchromatopelma-37e086d27d478246e72b8f5c1b75ed5d092495fa.tar.zst
Write closure conversion.
I desperately need a diffing library.
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>