diff options
| author | Rose Hogenson <rhogenson@posteo.net> | 2022-07-02 23:04:28 -0700 |
|---|---|---|
| committer | Rose Hogenson <rhogenson@posteo.net> | 2022-07-02 23:04:28 -0700 |
| commit | 37e086d27d478246e72b8f5c1b75ed5d092495fa (patch) | |
| tree | bae0ac5e3c7f0984ef259da6ad5d6f094b64e588 /csc/hash-map.csc | |
| parent | Add update conversion. (diff) | |
| download | chromatopelma-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.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> |
