From 37e086d27d478246e72b8f5c1b75ed5d092495fa Mon Sep 17 00:00:00 2001 From: Rose Hogenson Date: Sat, 2 Jul 2022 23:04:28 -0700 Subject: Write closure conversion. I desperately need a diffing library. --- csc/hash-map.csc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'csc/hash-map.csc') 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 (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 -- cgit v1.3.1