~ 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