package reason-standard

  1. Overview
  2. Docs

Functions for working with single characters.

Character literals are enclosed in 'a' pair of single quotes.

let digit = '7'

The functions in this module work on ASCII characters (range 0-255) only, not Unicode.

Since character 128 through 255 have varying values depending on what standard is being used (ISO 8859-1 or Windows 1252), you are advised to stick to the 0-127 range.

Functions for working with single characters.

type t = char

Create

You can create a Char using single quotes:

let char = 'c'
val ofCode : int -> char option

Convert an ASCII code point to a character.

Returns None if the codepoint is outside the range of 0 to 255 inclusive.

Examples

Char.ofCode 65 = Some 'A'
Char.ofCode 66 = Some 'B'
Char.ofCode 3000 = None
Char.ofCode (-1) = None

The full range of extended ASCII is from 0 to 255. For numbers outside that range, you get None.

val ofString : string -> char option

Converts a string to a character.

Returns None when the string isn't of length one.

Examples

Char.ofString "A" = Some 'A'
Char.ofString " " = Some ' '
Char.ofString "" = None
Char.ofString "abc" = None
Char.ofString " a" = None

Query

val isLowercase : char -> bool

Detect lower case ASCII characters.

Examples

Char.isLowercase 'a' = true
Char.isLowercase '0' = false
Char.isLowercase 'A' = false
Char.isLowercase '-' = false
val isUppercase : char -> bool

Detect upper case ASCII characters.

Examples

Char.isUppercase 'A' = true
Char.isUppercase 'h' = false
Char.isUppercase '0' = false
Char.isUppercase '-' = false
val isLetter : char -> bool

Detect upper and lower case ASCII alphabetic characters.

Examples

Char.isLetter 'a' = true
Char.isLetter 'E' = true
Char.isLetter '0' = false
Char.isLetter '-' = false
val isDigit : char -> bool

Detect when a character is a number

Examples

Char.isDigit '0' = true
Char.isDigit '9' = true
Char.isDigit 'a' = false
Char.isDigit '-' = false
val isAlphanumeric : char -> bool

Detect upper case, lower case and digit ASCII characters.

Examples

Char.isAlphanumeric 'a' = true
Char.isAlphanumeric 'E' = true
Char.isAlphanumeric '0' = true
Char.isAlphanumeric '-' = false
val isPrintable : char -> bool

Detect if a character is a printable character

A Printable character has a Char.toCode in the range 32 to 127, inclusive (' ' to '~').

Examples

Char.isPrintable 'G' = true
Char.isPrintable '%' = true
Char.isPrintable ' ' = true
Char.isPrintable '\t' = false
Char.isPrintable '\007' = false
val isWhitespace : char -> bool

Detect one of the following characters:

  • '\t' (tab)
  • '\n' (newline)
  • '\011' (vertical tab)
  • '\012' (form feed)
  • '\r' (carriage return)
  • ' ' (space)

Examples

Char.isWhitespace '\t' = true
Char.isWhitespace ' ' = true
Char.isWhitespace '?' = false
Char.isWhitespace 'G' = false

Transform

val toLowercase : char -> char

Converts an ASCII character to lower case, preserving non alphabetic ASCII characters.

Examples

Char.toLowercase 'A' = 'a'
Char.toLowercase 'B' = 'b'
Char.toLowercase '7' = '7'
val toUppercase : char -> char

Convert an ASCII character to upper case, preserving non alphabetic ASCII characters.

Examples

toUppercase 'a' = 'A'
toUppercase 'b' = 'B'
toUppercase '7' = '7'

Convert

val toCode : char -> int

Convert to the corresponding ASCII code point.

Examples

Char.toCode 'A' = 65
Char.toCode 'B' = 66
val toString : char -> string

Convert a character into a string.

Examples

Char.toString 'A' = "A"
Char.toString '{' = "{"
Char.toString '7' = "7"
val toDigit : char -> int option

Converts a digit character to its corresponding Int.

Returns None when the character isn't a digit.

Examples

Char.toDigit "7" = Some 7
Char.toDigit "0" = Some 0
Char.toDigit "A" = None
Char.toDigit "" = None

Compare

val equal : char -> char -> bool

Test two Chars for equality

val compare : char -> char -> int

Compare two Chars

type identity

The unique identity for chars Comparator

val comparator : (char, identity) Standard__.Core.Comparator.t