70 lines
1.6 KiB
Racket
70 lines
1.6 KiB
Racket
#lang scheme/base
|
|
|
|
;; FIXME: there could be all sorts of mismatches between the R6RS
|
|
;; definitions and those in `scheme/base'.
|
|
|
|
(provide
|
|
char-upcase
|
|
char-downcase
|
|
char-titlecase
|
|
char-foldcase
|
|
char-ci=?
|
|
char-ci<?
|
|
char-ci>?
|
|
char-ci<=?
|
|
char-ci>=?
|
|
char-alphabetic?
|
|
char-numeric?
|
|
char-whitespace?
|
|
char-upper-case?
|
|
char-lower-case?
|
|
char-title-case?
|
|
(rename-out [r6rs:char-general-category char-general-category])
|
|
|
|
string-upcase
|
|
string-downcase
|
|
string-titlecase
|
|
string-foldcase
|
|
string-ci=?
|
|
string-ci<?
|
|
string-ci>?
|
|
string-ci<=?
|
|
string-ci>=?
|
|
|
|
string-normalize-nfd
|
|
string-normalize-nfkd
|
|
string-normalize-nfc
|
|
string-normalize-nfkc)
|
|
|
|
(define (r6rs:char-general-category ch)
|
|
(hash-ref #hasheq((ll . Ll)
|
|
(lu . Lu)
|
|
(lt . Lt)
|
|
(lm . Lm)
|
|
(lo . Lo)
|
|
(mn . Mn)
|
|
(mc . Mc)
|
|
(me . Me)
|
|
(nl . Nl)
|
|
(no . No)
|
|
(nd . Nd)
|
|
(zl . Zl)
|
|
(zs . Zs)
|
|
(zp . Zp)
|
|
(pc . Pc)
|
|
(pd . Pd)
|
|
(ps . Ps)
|
|
(pe . Pe)
|
|
(pi . Pi)
|
|
(pf . Pf)
|
|
(po . Po)
|
|
(sm . Sm)
|
|
(sc . Sc)
|
|
(sk . Sk)
|
|
(so . So)
|
|
(cf . Cf)
|
|
(cn . Cn)
|
|
(co . Co)
|
|
(cc . Cc))
|
|
(char-general-category ch)))
|