(import (rnrs)) ;R6RS (import (rnrs unicode)) ;R6RS (import (scheme r5rs)) ;R7RS (import (scheme char)) ;R7RS
(char-alphabetic? char) (char-numeric? char) (char-whitespace? char) (char-upper-case? char) (char-lower-case? char) (char-title-case? char) ;R6RS
A character is alphabetic if it has the Unicode "Alphabetic" property. A character is numeric if it has the Unicode "Numeric" property. A character is whitespace if has the Unicode "White_Space" property. A character is upper case if it has the Unicode "Uppercase" property, lower case if it has the "Lowercase" property, and title case if it is in the Lt general category.
R7RS notes that char-numeric? tests for "Numeric_Type=Decimal". Either way, it checks if the character is a decimal number.
(char-alphabetic? #\a) => #t (char-numeric? #\1) => #t (char-whitespace? #\space) => #t ;; The following are not required to be supported in R7RS. (char-numeric? #\x096A) => #t (char-whitespace? #\x00A0) => #t (char-upper-case? #\Σ) => #t (char-lower-case? #\σ) => #t
R5RS and earlier reports mention the proper semantics for ASCII, but implementations are free to use e.g. EBCDIC instead.