diff options
| author | 2022-11-26 13:10:33 +0100 | |
|---|---|---|
| committer | 2022-11-26 13:10:33 +0100 | |
| commit | 25a0dee93a6929c256118cb6993fa93e195ed2b6 (patch) | |
| tree | 5773fe2eb20a620da11c08a735b0a8921c3e8967 /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.sld | 5 | ||||
| -rw-r--r-- | srfi/srfi-228.scm | 18 |
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)))) |
