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

string-ci=?

Conformance: R5RS Scheme

Purpose: Case-insensitively test whether all strings in a sequence are equal.

Arguments:
X - string
Y... - strings

Implementation:

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

Example:

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

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