~ chicken-r7rs (master) 510df491d34de8b93a9e41760bda174138a31dbe
commit 510df491d34de8b93a9e41760bda174138a31dbe
Author: Evan Hanson <evhan@foldling.org>
AuthorDate: Mon Jan 13 18:34:53 2014 +0000
Commit: Evan Hanson <evhan@foldling.org>
CommitDate: Mon Jan 13 18:34:53 2014 +0000
Export numeric/whitespace/etc. test procedures from scheme.char, add digit-value
diff --git a/scheme.char.scm b/scheme.char.scm
index e66e19d..ed0daff 100644
--- a/scheme.char.scm
+++ b/scheme.char.scm
@@ -1,5 +1,10 @@
(module scheme.char (char-ci=? char-ci<? char-ci>? char-ci<=? char-ci>=?
- string-ci=? string-ci<? string-ci>? string-ci<=? string-ci>=?)
+ string-ci=? string-ci<? string-ci>? string-ci<=? string-ci>=?
+ char-alphabetic? char-numeric? char-whitespace?
+ char-upper-case? char-lower-case?
+ ;; char-foldcase ; TODO
+ char-upcase char-downcase
+ digit-value)
(import
(except scheme
@@ -36,4 +41,10 @@
(define-extended-arity-comparator string-ci<? %string-ci<? ##sys#check-string)
(define-extended-arity-comparator string-ci>? %string-ci>? ##sys#check-string)
(define-extended-arity-comparator string-ci<=? %string-ci<=? ##sys#check-string)
-(define-extended-arity-comparator string-ci>=? %string-ci>=? ##sys#check-string))
+(define-extended-arity-comparator string-ci>=? %string-ci>=? ##sys#check-string)
+
+(: digit-value (char -> (or fixnum boolean)))
+
+(define (digit-value c)
+ (let ((i (char->integer c)))
+ (and (fx>= i 48) (fx<= i 57) (fx- i 48)))))
Trap