source: project/release/4/r7rs/trunk/scheme.char.scm @ 30898

Last change on this file since 30898 was 30898, checked in by evhan, 6 years ago

r7rs: read/write for shared data

File size: 2.4 KB
Line 
1(module scheme.char (char-ci=? char-ci<? char-ci>? char-ci<=? char-ci>=?
2                     string-ci=? string-ci<? string-ci>? string-ci<=? string-ci>=?
3                     char-alphabetic? char-numeric? char-whitespace?
4                     char-upper-case? char-lower-case?
5                     char-foldcase string-foldcase
6                     char-upcase char-downcase
7                     string-upcase string-downcase
8                     digit-value)
9
10(import
11  (except scheme
12          char-ci=? char-ci<? char-ci>? char-ci<=? char-ci>=?
13          string-ci=? string-ci<? string-ci>? string-ci<=? string-ci>=?)
14  (prefix
15    (only scheme
16          char-ci=? char-ci<? char-ci>? char-ci<=? char-ci>=?
17          string-ci=? string-ci<? string-ci>? string-ci<=? string-ci>=?)
18    %))
19
20(require-library srfi-13)
21(import (only srfi-13 string-map string-upcase string-downcase))
22
23(import chicken)
24(require-extension r7rs-compile-time)
25
26(: char-ci=? (char char #!rest char -> boolean))
27(: char-ci<? (char char #!rest char -> boolean))
28(: char-ci>? (char char #!rest char -> boolean))
29(: char-ci<=? (char char #!rest char -> boolean))
30(: char-ci>=? (char char #!rest char -> boolean))
31
32(define-extended-arity-comparator char-ci=? %char-ci=? ##sys#check-char)
33(define-extended-arity-comparator char-ci<? %char-ci<? ##sys#check-char)
34(define-extended-arity-comparator char-ci>? %char-ci>? ##sys#check-char)
35(define-extended-arity-comparator char-ci<=? %char-ci<=? ##sys#check-char)
36(define-extended-arity-comparator char-ci>=? %char-ci>=? ##sys#check-char)
37
38(: string-ci=? (string string #!rest string -> boolean))
39(: string-ci<? (string string #!rest string -> boolean))
40(: string-ci>? (string string #!rest string -> boolean))
41(: string-ci<=? (string string #!rest string -> boolean))
42(: string-ci>=? (string string #!rest string -> boolean))
43
44(define-extended-arity-comparator string-ci=? %string-ci=? ##sys#check-string)
45(define-extended-arity-comparator string-ci<? %string-ci<? ##sys#check-string)
46(define-extended-arity-comparator string-ci>? %string-ci>? ##sys#check-string)
47(define-extended-arity-comparator string-ci<=? %string-ci<=? ##sys#check-string)
48(define-extended-arity-comparator string-ci>=? %string-ci>=? ##sys#check-string)
49
50(: char-foldcase (char -> char))
51(define (char-foldcase c) (char-downcase c))
52
53(: string-foldcase (string -> string))
54(define (string-foldcase s) (string-map char-foldcase s))
55
56(: digit-value (char -> (or fixnum boolean)))
57(define (digit-value c)
58  (let ((i (char->integer c)))
59    (and (fx>= i 48) (fx<= i 57) (fx- i 48)))))
Note: See TracBrowser for help on using the repository browser.