t3x.org / sketchy / library / s-cigep.html
SketchyLISP
Reference
  Copyright (C) 2007
Nils M Holm

string-ci>=?

Conformance: R5RS Scheme

Purpose: Case-insensitively test whether a sequence of strings is in lexically non-ascending order.

Arguments:
X - string
Y... - strings

Implementation:

(define string-ci>=?
  (letrec
    ((ci-ge?
       (lambda (x y)
         (cond ((null? x) (null? y))
           ((null? y) #t)
           ((char-ci<? (car x) (car y)) #f)
           ((char-ci>? (car x) (car y)) #t)
           (else (ci-ge? (cdr x) (cdr y)))))))
  (predicate-iterator
    (lambda (x y)
      (ci-ge? (string->list x)
              (string->list y))))))

Example:

(string-ci>=? "XYZ" "xyz" "xXx") 
=> #t

See also:
string>=?, string-ci<?, string-ci=?, string-ci>?, string-ci<=?, char-ci>=?, equal?.