Functional Problem Solving (CSC 151 2015F) : Reference

# Characters

## Converting Characters

```(char->integer ch)```
Standard Character Procedure. Get `ch`'s position in the collating sequence.
```(integer->char n)```
Standard Character Procedure. Get the `n`th character in the collating sequence.
```(char-downcase ch)```
Standard Character Procedure. If `ch` is an upper-case character (#\A, #\B, ... #\Z, in ASCII; potentially other characters in other character sets), return the corresponding lower-case character. Otherwise, return the same character.
```(char-upcase ch)```
Standard Character Procedure. If `ch` is a lower-case character (#\a, #\b, ... #\z, in ASCII; potentially other characters in other character sets), return the corresponding upper-case character (#\A for #\a, #\B for #\b, etc.). Otherwise, return the same character.

## Character Predicates

```(char? val)```
Standard Character Predicate. Determine if `val` is a character.
```(char-alphabetic? ch)```
Standard Character Predicate. Determine if `ch` (which must be a character) is an alphabetic character (in English, #\a, #\b, ... #\z, #\A, #\B, ...., #\Z).
```(char-numeric? ch)```
Standard Character Predicate. Determine if `ch` (which must be a character) represents a digit in a number (traditionally, #\0, #\1, ... #\9, although other systems have different numeric characters).
```(char-whitespace? ch)```
Standard Character Predicate. Determine if `ch` (which must be a character) represents a whitespace character, such as a space, a tab, or a newline.
```(char-lower-case? ch)```
Standard Character Predicate. Determine if `ch` (which must be a character) represents a lower-case character (in English, #\a, #\b, ... #\z).
```(char-upper-case? ch)```
Standard Character Predicate. Determine if `ch` (which must be a character) represents an upper-case character (in English, #\A, #\B, ... #\Z).

## Comparing Characters

```(char<? ch1 ch2)```
Standard Character Comparator. Determine if `ch1` precedes `ch2` in the collating sequence. Both `ch1` and `ch2` must be characters.
```(char<=? ch1 ch2)```
Standard Character Comparator. Determine if `ch1` equals `ch2` or if `ch1` precedes `ch2` in the collating sequence. Both `ch1` and `ch2` must be characters.
```(char=? ch1 ch2)```
Standard Character Comparator. Determine if `ch1` and `ch2` are the same. Both `ch1` and `ch2` must be characters.
```(char>=? ch1 ch2)```
Standard Character Comparator. Determine if `ch1` and `ch2` are equal or if `ch1` follows `ch2` in the collating sequence. Both `ch1` and `ch2` must be characters.
```(char>? ch1 ch2)```
Standard Character Comparator. Determine if `ch1` follows `ch2` in the collating sequence. Both `ch1` and `ch2` must be characters.
```(char-ci<? ch1 ch2)```
Standard Character Comparator. If both `ch1` and `ch2` are alphabetic characters (letters), determine if `ch1` naturally precedes `ch2`, ignoring case. If either is not alphabetic, determine if `ch1` precedes `ch2` in the collating sequence. Both `ch1` and `ch2` must be characters.
```(char-ci<=? ch1 ch2)```
Standard Character Comparator. If both `ch1` and `ch2` are alphabetic characters (letters), determine if `ch1` naturally precedes or equals `ch2`, ignoring case. If either is not alphabetic, determine if `ch1` equals `ch2` or if `ch1` precedes `ch2` in the collating sequence. Both `ch1` and `ch2` must be characters.
```(char-ci=? ch1 ch2)```
Standard Character Comparator. If both `ch1` and `ch2` are alphabetic characters (letters), determine if `ch1` and `ch2` represent the same letter, ignoring case. If either is not alphabetic, determine if `ch1` follows `ch2` in the collating sequence. Both `ch1` and `ch2` must be characters.
```(char-ci>=? ch1 ch2)```
Standard Character Comparator. If both `ch1` and `ch2` are alphabetic characters (letters), determine if `ch1` naturally follows or equals `ch2`, ignoring case. If either is not alphabetic, determine if `ch1` equals `ch2` or if `ch1` follows `ch2` in the collating sequence. Both `ch1` and `ch2` must be characters.
```(char-ci>? ch1 ch2)```
Standard Character Comparator. If both `ch1` and `ch2` are alphabetic characters (letters), determine if `ch1` naturally follows `ch2`, ignoring case. If either is not alphabetic, determine if `ch1` follows `ch2` in the collating sequence. Both `ch1` and `ch2` must be characters.