From 26bd5c7638183331a9f229e438d133d20ec0d862 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Fri, 18 Jul 2014 11:43:15 -0700 Subject: [PATCH] changed to use the order? convention from data/order --- minimart/sorted-map.rkt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/minimart/sorted-map.rkt b/minimart/sorted-map.rkt index 6ed0e9e..22b3de1 100644 --- a/minimart/sorted-map.rkt +++ b/minimart/sorted-map.rkt @@ -57,6 +57,7 @@ clause ...))])) ; A form for matching the result of a comparison: +;; tonyg 20140718: changed to use the order? convention from data/order (define-syntax switch-compare (syntax-rules (= < >) [(_ (cmp v1 v2) @@ -65,10 +66,10 @@ [> action3 ...]) ; => (let ((dir (cmp v1 v2))) - (cond - [(< dir 0) action1 ...] - [(= dir 0) action2 ...] - [(> dir 0) action3 ...]))])) + (case dir + [(<) action1 ...] + [(=) action2 ...] + [(>) action3 ...]))])) ;; tonyg 20140718: for hash-consing, we have to be able to compare ;; trees using equal?, which necessitates use of #:transparent in our @@ -297,11 +298,10 @@ [(`((,k1 . ,v1) . ,rest1) `((,k2 . ,v2) . ,rest2)) ; => - (let ((dir (cmp k1 k2))) - (cond - [(< dir 0) #f] - [(= dir 0) (and (by v1 v2) (compare-alists rest1 rest2))] - [else (compare-alists amap1 rest2)]))] + (switch-compare (cmp k1 k2) + [< #f] + [= (and (by v1 v2) (compare-alists rest1 rest2))] + [> (compare-alists amap1 rest2)])] [('() '()) #t]