~ 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