Added string-ci's

This commit is contained in:
Justin Ethier 2016-03-31 22:31:05 -04:00
parent 489389a3ee
commit 0ca4d3f4b5

View file

@ -24,11 +24,12 @@
digit-value digit-value
string-upcase string-upcase
string-downcase string-downcase
; TODO: string-foldcase
;string-foldcase string-ci<=?
;string-ci<=? string-ci<? string-ci<?
;string-ci=? string-ci>=? string-ci=?
;string-ci>? string-ci>=?
string-ci>?
) )
(import (scheme base)) (import (scheme base))
(begin (begin
@ -52,6 +53,11 @@
(define (char-ci<? c1 c2 . cs) (apply char<? (map char-foldcase (cons c1 (cons c2 cs))))) (define (char-ci<? c1 c2 . cs) (apply char<? (map char-foldcase (cons c1 (cons c2 cs)))))
(define (char-ci>=? c1 c2 . cs) (apply char>=? (map char-foldcase (cons c1 (cons c2 cs))))) (define (char-ci>=? c1 c2 . cs) (apply char>=? (map char-foldcase (cons c1 (cons c2 cs)))))
(define (char-ci>? c1 c2 . cs) (apply char>? (map char-foldcase (cons c1 (cons c2 cs))))) (define (char-ci>? c1 c2 . cs) (apply char>? (map char-foldcase (cons c1 (cons c2 cs)))))
(define (string-ci=? s1 s2) (apply string=? (map string-foldcase (list s1 s2))))
(define (string-ci<? s1 s2) (apply string<? (map string-foldcase (list s1 s2))))
(define (string-ci<=? s1 s2) (apply string<=? (map string-foldcase (list s1 s2))))
(define (string-ci>? s1 s2) (apply string>? (map string-foldcase (list s1 s2))))
(define (string-ci>=? s1 s2) (apply string>=? (map string-foldcase (list s1 s2))))
(define (char-alphabetic? c) (or (char-upper-case? c) (char-lower-case? c))) (define (char-alphabetic? c) (or (char-upper-case? c) (char-lower-case? c)))
(define (char-upper-case? c) (and (char>=? c #\A) (char<=? c #\Z))) ;; ASCII-only (define (char-upper-case? c) (and (char>=? c #\A) (char<=? c #\Z))) ;; ASCII-only
(define (char-lower-case? c) (and (char>=? c #\a) (char<=? c #\z))) ;; ASCII-only (define (char-lower-case? c) (and (char>=? c #\a) (char<=? c #\z))) ;; ASCII-only
@ -63,4 +69,5 @@
#f)) #f))
(define (string-upcase str) (string-map char-upcase str)) (define (string-upcase str) (string-map char-upcase str))
(define (string-downcase str) (string-map char-downcase str)) (define (string-downcase str) (string-map char-downcase str))
(define (string-foldcase str) (string-map char-foldcase str))
)) ))