summaryrefslogtreecommitdiffstats
path: root/srfi
diff options
context:
space:
mode:
authorGravatar Daphne Preston-Kendal 2022-11-26 13:10:33 +0100
committerGravatar Daphne Preston-Kendal 2022-11-26 13:10:33 +0100
commit25a0dee93a6929c256118cb6993fa93e195ed2b6 (patch)
tree5773fe2eb20a620da11c08a735b0a8921c3e8967 /srfi
parent(chibi test) uses the order expected value then actual value (diff)
Add zero-comparator and one-comparator to the sample implementation
Diffstat (limited to 'srfi')
-rw-r--r--srfi/228.sld5
-rw-r--r--srfi/srfi-228.scm18
2 files changed, 18 insertions, 5 deletions
diff --git a/srfi/228.sld b/srfi/228.sld
index 834f1ce..ebec908 100644
--- a/srfi/228.sld
+++ b/srfi/228.sld
@@ -5,5 +5,8 @@
(srfi 151))
(export make-wrapper-comparator
make-product-comparator
- make-sum-comparator)
+ make-sum-comparator
+
+ one-comparator
+ zero-comparator)
(include "srfi-228.scm"))
diff --git a/srfi/srfi-228.scm b/srfi/srfi-228.scm
index caca339..b90db54 100644
--- a/srfi/srfi-228.scm
+++ b/srfi/srfi-228.scm
@@ -53,7 +53,7 @@
(let ((a-cmp (find-tail (type-tests-for? a) comparators)))
(if (and a-cmp ((comparator-type-test-predicate (car a-cmp)) b))
a-cmp
- (let ((b-cmp (find-tail (type-tests-for? a) comparators)))
+ (let ((b-cmp (find-tail (type-tests-for? b) comparators)))
(if (and b-cmp ((comparator-type-test-predicate (car b-cmp)) a))
b-cmp
#f)))))
@@ -84,7 +84,17 @@
(let ((cmp (%sum-comparator-for comparators x x)))
((comparator-hash-function (car cmp)) x)))
#f)))
-<<<<<<<< HEAD:srfi/composing-comparators.scm
-========
->>>>>>>> 58c55b3dfe6ebdfd8770cd69ac08acda24dc4f50:srfi/srfi-228.scm
+(define one-comparator
+ (make-comparator
+ (lambda (x) #t)
+ (lambda (a b) #t)
+ (lambda (a b) #f)
+ (lambda (x) 0)))
+
+(define zero-comparator
+ (make-comparator
+ (lambda (x) #f)
+ (lambda (a b) (error "can't compare" a b))
+ (lambda (a b) (error "can't compare" a b))
+ (lambda (x) (error "can't hash" x))))