Char! datatype

1. Úvodem

Hodnoty char! reprezentují kódový bod Unicode. Jsou to celá čísla v rozsahu od hexadecimální nuly do hexadecimální hodnoty 10FFFF (od nuly do 1,114,111 v dekadickém systému).

Typ char! je členem následujících typesetů: immediate!, scalar!

2. Charakteristika

Hodnoty typu 'char!' jsou 'přímé', 'atomické' a 'pasivní'.

Note
Předpokládá se, že charakteristiky typu byly již dříve v dokumentu definovány.

3. Vytvoření

Hodnoty char! mohou být vytvořeny s použitím literálové syntaxe nebo při běhu programu s použitím konstruktoru 'make' nebo konverzí   'to'   jednou z mnoha funkcí, které z hodnoty string! extrahují hodnotu char!.

3.1. Literálová syntaxe

Základní literálový formát pro hodnoty char! jest:

#"<character>"
<character> : jeden kódový bod Unicode (obvykle zadaný z klávesnice)

Literálová syntaxe rovněž podporuje únikové znaky (escaped characters) pro řídící znaky a pro znaky, které se obtížně píší na standardní klávesnici.

Únikovým znakem v Redu je '^' - codepoint U+005E. V důsledku toho musí být samotný znak ^ rovněž předsazen únikovým znakem. Stringový literál pro kódový bod je #"^^" nikoliv #"^"; označení #"^" je neplatné.

V Redu existují tři formy únikových literálů, jeden pro číselné kódové body, další pro pojmenované znaky a poslední pro "řídící" znaky.

Formát kódového bodu je:

#"^(<codepoint>)"
<codepoint> : a valid hexadecimal e.g. 00, ABCD, 10FFFFF

Formát "řídících" znaků je:

#"^<cc>"
<cc> : A single character from the set - A-Z, [, \, ], _
Table 1. Únikové řídící znaky

Únikový znak

Codepoint

#"^A" - #"^Z"

U+0001 - U+001A.

#"^["

U+001B

#"^\"

U+001C

#"^]"

U+001D

#"^_"

U+001F

Formát "pojmenovaných" znaků je:

#"^(<name>)" nebo #"^<symbol>"
<name> : název z tabulky Únikové řídící znaky
<symbol> : symbol z tabulky Únikové řídící znaky
Table 2. Pojmenované únikové znaky

name

symbol

character

codepoint

#"^(null)

#"^@"

null

U+0000

#"^(back)"

backspace

U+0008

#"^(tab)"

#"^-"

horizontal tab

U+0009

#"^(line)"

#"^/"

line feed

U+000A

#"^(page)"

form feed

U+000C

#"^(esc)"

escape

U+001B

#"^(del)"

#"^~"

delete

U+007F

#"^""

" - double quote

U+0022

#"^^"

^ - caret

U+005E

4. Komparace

Pro hodnoty typu 'char!' mohou být použity všechny komparátory : =, ==, <>, >, <, >=, <=, =?. Navíc jsou podporovány min, max a sort. Porovnávání hodnot typu char! values je 'case sensitive'.

Příklady

#"a" = #"A"
== false
#"a" =? #"a"
== true
max #"a" #"A"
== #"a"
sort [#"c" #"b" #"d" #"a"]
== [#"a" #"b" #"c" #"d"]

5. Aritmetika

Pro hodnoty char! lze použít celý rozsah matematických funkcí. Pokud se výsledek aritmetického výrazu dostane mimo rozsah 00 - 10FFFF (hexadecimal), je vyvolána chyba Math Error.

Příklady

#"a" + 1
== #"b"
#"a" - 32
== #"A"
#"a" * 256
== #"愀"
#"a" - 98
*** Math Error: math or number overflow
*** Where: -
*** Stack:

6. Další souvisící funkce

Lowercase, Uppercase

results matching ""

    No results matching ""