foreign-c-libraries/.tmp/system/chibi/.akku/lib/srfi/%3a152/extend-comparisons.scm

31 lines
1007 B
Scheme

;;; Extend comparisons to 0 and 1 arguments.
;; 2017-10-04 Sudarshan S Chawathe <chaw@eip10.org>
;; For each (name . base-name) pair in arguments, define name to be
;; comparison procedure similar to base-name, but allow it to accept 0
;; or 1 arguments in addition to more (as permitted by base-name),
;; returning true in the former cases.
(define-syntax define-comparison/base/pairs
(syntax-rules ()
((_ (name . base-name) ...)
(begin
(define (name . strs)
(or (null? strs)
(null? (cdr strs))
(apply base-name strs))) ...))))
;; Extend the usual string comparison procedures as above.
(define-comparison/base/pairs
(string=? . base-string=?)
(string<? . base-string<?)
(string>? . base-string>?)
(string<=? . base-string<=?)
(string>=? . base-string>=?)
(string-ci=? . base-string-ci=?)
(string-ci<? . base-string-ci<?)
(string-ci>? . base-string-ci>?)
(string-ci<=? . base-string-ci<=?)
(string-ci>=? . base-string-ci>=?))
;;;