Next: srfi comparators constructors bytevec, Previous: srfi comparators constructors list, Up: srfi comparators constructors [Index]
Build and return a comparator object behaving like
vector-comparator
but using element-comparator rather than
default-comparator
.
#!vicare (import (vicare) (srfi :114)) (define-constant C (make-vector-comparator exact-integer-comparator)) ;; type test (comparator-test-type C '#()) ⇒ #t (comparator-test-type C '#(1 2)) ⇒ #t (comparator-test-type C '#(1 2.0)) ⇒ #f (comparator-test-type C "ciao") ⇒ #f (comparator-test-type C '#(1+2i) ⇒ #f ;; type check (comparator-check-type C '#(1 2)) ⇒ #t (try (comparator-check-type C (void)) (catch E ((&comparator-type-error) #t) (else E))) ⇒ #t ;; comparison (comparator-compare C '#(1 2) '#(1 2)) ⇒ 0 (comparator-compare C '#(1 2) '#(1 3)) ⇒ -1 (comparator-compare C '#(1 3) '#(1 2)) ⇒ +1 (comparator-compare C '#() '#()) ⇒ 0 (comparator-compare C '#() '#(1 2)) ⇒ -1 (comparator-compare C '#(1 2) '#()) ⇒ +1 ;; hash (non-negative-exact-integer? (comparator-hash C '#()))) ⇒ #t (non-negative-exact-integer? (comparator-hash C '#(1 2))) ⇒ #t
Return a comparator which compares two objects that satisfy type-test as if they were vectors, using the length procedure to determine the length of the object, and the ref procedure to access a particular element.