1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- ;;; Copyright (C) John Cowan (2015). All Rights Reserved.
- ;;;
- ;;; Permission is hereby granted, free of charge, to any person
- ;;; obtaining a copy of this software and associated documentation
- ;;; files (the "Software"), to deal in the Software without
- ;;; restriction, including without limitation the rights to use,
- ;;; copy, modify, merge, publish, distribute, sublicense, and/or
- ;;; sell copies of the Software, and to permit persons to whom the
- ;;; Software is furnished to do so, subject to the following
- ;;; conditions:
- ;;;
- ;;; The above copyright notice and this permission notice shall be
- ;;; included in all copies or substantial portions of the Software.
- ;;;
- ;;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- ;;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- ;;; OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- ;;; NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- ;;; HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- ;;; WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- ;;; FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- ;;; OTHER DEALINGS IN THE SOFTWARE.
- (define-library (srfi srfi-128)
- (export comparator? comparator-ordered? comparator-hashable?
- make-comparator
- make-pair-comparator make-list-comparator make-vector-comparator
- make-eq-comparator make-eqv-comparator make-equal-comparator
- boolean-hash char-hash char-ci-hash
- string-hash string-ci-hash symbol-hash number-hash
- make-default-comparator default-hash comparator-register-default!
- comparator-type-test-predicate comparator-equality-predicate
- comparator-ordering-predicate comparator-hash-function
- comparator-test-type comparator-check-type comparator-hash
- hash-bound hash-salt
- =? <? >? <=? >=?
- comparator-if<=>
- )
- (import (scheme base)
- (scheme case-lambda)
- (scheme char)
- (scheme inexact)
- (scheme complex))
- (cond-expand ((library (srfi srfi-126))
- (import (only (srfi srfi-126) equal-hash)))
- ((library (rnrs hashtables))
- (import (only (rnrs hashtables) equal-hash)))
- ((library (r6rs hashtables))
- (import (only (r6rs hashtables) equal-hash)))
- ((library (srfi srfi-69))
- (import (rename (only (srfi srfi-69) hash-by-identity)
- (hash-by-identity equal-hash))))
- (else
- ;; FIXME: This works well enough for the test program,
- ;; but you wouldn't want to use it in a real program.
- (begin (define (equal-hash x) 0))))
- (include "srfi-128/128.body1.scm")
- (include "srfi-128/128.body2.scm")
- )
|