2145 lines
49 KiB
HTML
2145 lines
49 KiB
HTML
|
<!DOCTYPE HTML>
|
||
|
<HTML LANG="en-us"
|
||
|
><HEAD
|
||
|
><TITLE
|
||
|
>13.1 Character Concepts | Common Lisp Nova Spec</TITLE
|
||
|
><META CHARSET="US-ASCII"
|
||
|
><LINK REL="canonical" HREF="13_1_Character_Concepts.html"
|
||
|
><LINK REL="next" HREF="13_2_Characters_Dictionary.html" TYPE="text/html" TITLE="13.2 Characters Dictionary"
|
||
|
><LINK REL="prev" HREF="13_Characters.html" TYPE="text/html" TITLE="13. Characters"
|
||
|
><LINK REL="up" HREF="13_Characters.html" TYPE="text/html" TITLE="13. Characters"
|
||
|
><LINK REL="start" HREF="index.html" TYPE="text/html" TITLE="Common Lisp Nova Spec"
|
||
|
><META NAME="VIEWPORT" CONTENT="width=device-width, initial-scale=1.0"
|
||
|
><LINK REL="STYLESHEET" HREF="dpans.css%3F3909942064.css"
|
||
|
><SCRIPT SRC="dpans.js%3F3909942064"
|
||
|
></SCRIPT
|
||
|
><SCRIPT SRC="apropos.js%3F3909942064"
|
||
|
></SCRIPT
|
||
|
></HEAD
|
||
|
><BODY
|
||
|
><DIV
|
||
|
><DIV CLASS="topnav"
|
||
|
><DIV CLASS="breadcrumb"
|
||
|
><SPAN CLASS="breadcrumb-item"
|
||
|
><A HREF="index.html"
|
||
|
>Common Lisp Nova Spec</A
|
||
|
></SPAN
|
||
|
> <SPAN CLASS="breadcrumb-item"
|
||
|
>→ <A HREF="13_Characters.html"
|
||
|
>13. Characters</A
|
||
|
></SPAN
|
||
|
> <SPAN CLASS="breadcrumb-item"
|
||
|
>→ <A HREF="13_1_Character_Concepts.html"
|
||
|
>13.1 Character Concepts</A
|
||
|
></SPAN
|
||
|
></DIV
|
||
|
><DIV CLASS="apropos"
|
||
|
><DIV CLASS="apropos-io"
|
||
|
><A HREF="13_Characters.html" CLASS="prev"
|
||
|
>←</A
|
||
|
><SPAN ID="apropos-label"
|
||
|
>Apropos </SPAN
|
||
|
><INPUT ID="apropos" AUTOFOCUS="AUTOFOCUS" PLACEHOLDER="Type here to search" ONINPUT="aproposInput(this);" ONKEYUP="aproposKeyup(event);" ONCHANGE="aproposChange(this);" ONFOCUS="aproposFocus(this);" ONFOCUSOUT="aproposFocusout(this);"
|
||
|
><A HREF="13_2_Characters_Dictionary.html" CLASS="next"
|
||
|
>→</A
|
||
|
></DIV
|
||
|
><DIV ID="apropos-res"
|
||
|
></DIV
|
||
|
></DIV
|
||
|
></DIV
|
||
|
><DIV CLASS="matter"
|
||
|
><SECTION
|
||
|
><H2 ID="sec_13_1" CLASS="HeadII"
|
||
|
>13.1 Character Concepts</H2
|
||
|
><UL CLASS="subtoc"
|
||
|
><LI
|
||
|
><A HREF="13_1_Character_Concepts.html#sec_13_1_1"
|
||
|
>13.1.1 Introduction to Characters</A
|
||
|
></LI
|
||
|
><LI
|
||
|
><A HREF="13_1_Character_Concepts.html#sec_13_1_2"
|
||
|
>13.1.2 Introduction to Scripts and Repertoires</A
|
||
|
></LI
|
||
|
><LI
|
||
|
><A HREF="13_1_Character_Concepts.html#sec_13_1_2_1"
|
||
|
>13.1.2.1 Character Scripts</A
|
||
|
></LI
|
||
|
><LI
|
||
|
><A HREF="13_1_Character_Concepts.html#sec_13_1_2_2"
|
||
|
>13.1.2.2 Character Repertoires</A
|
||
|
></LI
|
||
|
><LI
|
||
|
><A HREF="13_1_Character_Concepts.html#sec_13_1_3"
|
||
|
>13.1.3 Character Attributes</A
|
||
|
></LI
|
||
|
><LI
|
||
|
><A HREF="13_1_Character_Concepts.html#sec_13_1_4"
|
||
|
>13.1.4 Character Categories</A
|
||
|
></LI
|
||
|
><LI
|
||
|
><A HREF="13_1_Character_Concepts.html#sec_13_1_4_1"
|
||
|
>13.1.4.1 Graphic Characters</A
|
||
|
></LI
|
||
|
><LI
|
||
|
><A HREF="13_1_Character_Concepts.html#sec_13_1_4_2"
|
||
|
>13.1.4.2 Alphabetic Characters</A
|
||
|
></LI
|
||
|
><LI
|
||
|
><A HREF="13_1_Character_Concepts.html#sec_13_1_4_3"
|
||
|
>13.1.4.3 Characters With Case</A
|
||
|
></LI
|
||
|
><LI
|
||
|
><A HREF="13_1_Character_Concepts.html#sec_13_1_4_3_1"
|
||
|
>13.1.4.3.1 Uppercase Characters</A
|
||
|
></LI
|
||
|
><LI
|
||
|
><A HREF="13_1_Character_Concepts.html#sec_13_1_4_3_2"
|
||
|
>13.1.4.3.2 Lowercase Characters</A
|
||
|
></LI
|
||
|
><LI
|
||
|
><A HREF="13_1_Character_Concepts.html#sec_13_1_4_3_3"
|
||
|
>13.1.4.3.3 Corresponding Characters in the Other Case</A
|
||
|
></LI
|
||
|
><LI
|
||
|
><A HREF="13_1_Character_Concepts.html#sec_13_1_4_3_4"
|
||
|
>13.1.4.3.4 Case of Implementation-Defined Characters</A
|
||
|
></LI
|
||
|
><LI
|
||
|
><A HREF="13_1_Character_Concepts.html#sec_13_1_4_4"
|
||
|
>13.1.4.4 Numeric Characters</A
|
||
|
></LI
|
||
|
><LI
|
||
|
><A HREF="13_1_Character_Concepts.html#sec_13_1_4_5"
|
||
|
>13.1.4.5 Alphanumeric Characters</A
|
||
|
></LI
|
||
|
><LI
|
||
|
><A HREF="13_1_Character_Concepts.html#sec_13_1_4_6"
|
||
|
>13.1.4.6 Digits in a Radix</A
|
||
|
></LI
|
||
|
><LI
|
||
|
><A HREF="13_1_Character_Concepts.html#sec_13_1_5"
|
||
|
>13.1.5 Identity of Characters</A
|
||
|
></LI
|
||
|
><LI
|
||
|
><A HREF="13_1_Character_Concepts.html#sec_13_1_6"
|
||
|
>13.1.6 Ordering of Characters</A
|
||
|
></LI
|
||
|
><LI
|
||
|
><A HREF="13_1_Character_Concepts.html#sec_13_1_7"
|
||
|
>13.1.7 Character Names</A
|
||
|
></LI
|
||
|
><LI
|
||
|
><A HREF="13_1_Character_Concepts.html#sec_13_1_8"
|
||
|
>13.1.8 Treatment of Newline during Input and Output</A
|
||
|
></LI
|
||
|
><LI
|
||
|
><A HREF="13_1_Character_Concepts.html#sec_13_1_9"
|
||
|
>13.1.9 Character Encodings</A
|
||
|
></LI
|
||
|
><LI
|
||
|
><A HREF="13_1_Character_Concepts.html#sec_13_1_10"
|
||
|
>13.1.10 Documentation of Implementation-Defined Scripts</A
|
||
|
></LI
|
||
|
></UL
|
||
|
><H3 ID="sec_13_1_1" CLASS="HeadIII"
|
||
|
>13.1.1 Introduction to Characters</H3
|
||
|
><P CLASS="j"
|
||
|
>A <DFN CLASS="newterm"
|
||
|
><SPAN CLASS="cmbxsl"
|
||
|
>character</SPAN
|
||
|
></DFN
|
||
|
> <SPAN CLASS="idx" DATA-KIND="idxterm" DATA-TERM="character"
|
||
|
></SPAN
|
||
|
>is an <A HREF="26_1_Glossary.html#object"
|
||
|
><EM CLASS="term"
|
||
|
>object</EM
|
||
|
></A
|
||
|
> that represents a unitary token (<I CLASS="i"
|
||
|
><I
|
||
|
>e.g.</I
|
||
|
></I
|
||
|
>, a letter, a special symbol, or a “control character”) in an aggregate quantity of text (<I CLASS="i"
|
||
|
><I
|
||
|
>e.g.</I
|
||
|
></I
|
||
|
>, a <A HREF="26_1_Glossary.html#string"
|
||
|
><EM CLASS="term"
|
||
|
>string</EM
|
||
|
></A
|
||
|
> or a text <A HREF="26_1_Glossary.html#stream"
|
||
|
><EM CLASS="term"
|
||
|
>stream</EM
|
||
|
></A
|
||
|
>). </P
|
||
|
><P CLASS="j"
|
||
|
>Common Lisp allows an implementation to provide support for international language <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
> as well as <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
> used in specialized arenas (<I CLASS="i"
|
||
|
><I
|
||
|
>e.g.</I
|
||
|
></I
|
||
|
>, mathematics). </P
|
||
|
><P CLASS="j"
|
||
|
>The following figures contain lists of <A HREF="26_1_Glossary.html#defined_name"
|
||
|
><EM CLASS="term"
|
||
|
>defined names</EM
|
||
|
></A
|
||
|
> applicable to <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
>. </P
|
||
|
><P CLASS="j"
|
||
|
>Figure 13–1 lists some <A HREF="26_1_Glossary.html#defined_name"
|
||
|
><EM CLASS="term"
|
||
|
>defined names</EM
|
||
|
></A
|
||
|
> relating to <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#attribute"
|
||
|
><EM CLASS="term"
|
||
|
>attributes</EM
|
||
|
></A
|
||
|
> and <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#predicate"
|
||
|
><EM CLASS="term"
|
||
|
>predicates</EM
|
||
|
></A
|
||
|
>.</P
|
||
|
><DIV CLASS="displaythree"
|
||
|
><FIGURE CLASS="boxfig"
|
||
|
><DIV CLASS="figbody"
|
||
|
><TABLE CELLSPACING="0" CELLPADDING="0" RULES="GROUPS" STYLE="margin: 1ex 0" WIDTH="100%"
|
||
|
><TBODY
|
||
|
><TR
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE=";padding-right:1em"
|
||
|
><A HREF="f_alpha-char-p.html" CLASS="misc"
|
||
|
><B
|
||
|
>alpha-char-p</B
|
||
|
></A
|
||
|
></TD
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE="padding-left:1em;padding-right:1em"
|
||
|
> <A HREF="f_char_eq.html" CLASS="misc"
|
||
|
><B
|
||
|
>char-not-equal</B
|
||
|
></A
|
||
|
></TD
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE="padding-left:1em;"
|
||
|
> <A HREF="f_char_eq.html" CLASS="misc"
|
||
|
><B
|
||
|
>char</B
|
||
|
><SPAN CLASS="cmtt"
|
||
|
>></SPAN
|
||
|
></A
|
||
|
></TD
|
||
|
></TR
|
||
|
><TR
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE=";padding-right:1em"
|
||
|
> <A HREF="f_alphanumericp.html" CLASS="misc"
|
||
|
><B
|
||
|
>alphanumericp</B
|
||
|
></A
|
||
|
></TD
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE="padding-left:1em;padding-right:1em"
|
||
|
> <A HREF="f_char_eq.html" CLASS="misc"
|
||
|
><B
|
||
|
>char-not-greaterp</B
|
||
|
></A
|
||
|
></TD
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE="padding-left:1em;"
|
||
|
> <A HREF="f_char_eq.html" CLASS="misc"
|
||
|
><B
|
||
|
>char</B
|
||
|
><SPAN CLASS="cmtt"
|
||
|
>></SPAN
|
||
|
><B
|
||
|
>=</B
|
||
|
></A
|
||
|
></TD
|
||
|
></TR
|
||
|
><TR
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE=";padding-right:1em"
|
||
|
> <A HREF="f_upper-case-p.html" CLASS="misc"
|
||
|
><B
|
||
|
>both-case-p</B
|
||
|
></A
|
||
|
></TD
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE="padding-left:1em;padding-right:1em"
|
||
|
> <A HREF="f_char_eq.html" CLASS="misc"
|
||
|
><B
|
||
|
>char-not-lessp</B
|
||
|
></A
|
||
|
></TD
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE="padding-left:1em;"
|
||
|
> <A HREF="f_digit-char-p.html" CLASS="misc"
|
||
|
><B
|
||
|
>digit-char-p</B
|
||
|
></A
|
||
|
></TD
|
||
|
></TR
|
||
|
><TR
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE=";padding-right:1em"
|
||
|
> <A HREF="v_char-code-limit.html" CLASS="misc"
|
||
|
><B
|
||
|
>char-code-limit</B
|
||
|
></A
|
||
|
></TD
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE="padding-left:1em;padding-right:1em"
|
||
|
> <A HREF="f_char_eq.html" CLASS="misc"
|
||
|
><B
|
||
|
>char/=</B
|
||
|
></A
|
||
|
></TD
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE="padding-left:1em;"
|
||
|
> <A HREF="f_graphic-char-p.html" CLASS="misc"
|
||
|
><B
|
||
|
>graphic-char-p</B
|
||
|
></A
|
||
|
></TD
|
||
|
></TR
|
||
|
><TR
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE=";padding-right:1em"
|
||
|
> <A HREF="f_char_eq.html" CLASS="misc"
|
||
|
><B
|
||
|
>char-equal</B
|
||
|
></A
|
||
|
></TD
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE="padding-left:1em;padding-right:1em"
|
||
|
> <A HREF="f_char_eq.html" CLASS="misc"
|
||
|
><B
|
||
|
>char</B
|
||
|
><SPAN CLASS="cmtt"
|
||
|
><</SPAN
|
||
|
></A
|
||
|
></TD
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE="padding-left:1em;"
|
||
|
> <A HREF="f_upper-case-p.html" CLASS="misc"
|
||
|
><B
|
||
|
>lower-case-p</B
|
||
|
></A
|
||
|
></TD
|
||
|
></TR
|
||
|
><TR
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE=";padding-right:1em"
|
||
|
> <A HREF="f_char_eq.html" CLASS="misc"
|
||
|
><B
|
||
|
>char-greaterp</B
|
||
|
></A
|
||
|
></TD
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE="padding-left:1em;padding-right:1em"
|
||
|
> <A HREF="f_char_eq.html" CLASS="misc"
|
||
|
><B
|
||
|
>char</B
|
||
|
><SPAN CLASS="cmtt"
|
||
|
><</SPAN
|
||
|
><B
|
||
|
>=</B
|
||
|
></A
|
||
|
></TD
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE="padding-left:1em;"
|
||
|
> <A HREF="f_standard-char-p.html" CLASS="misc"
|
||
|
><B
|
||
|
>standard-char-p</B
|
||
|
></A
|
||
|
></TD
|
||
|
></TR
|
||
|
><TR
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE=";padding-right:1em"
|
||
|
> <A HREF="f_char_eq.html" CLASS="misc"
|
||
|
><B
|
||
|
>char-lessp</B
|
||
|
></A
|
||
|
></TD
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE="padding-left:1em;padding-right:1em"
|
||
|
> <A HREF="f_char_eq.html" CLASS="misc"
|
||
|
><B
|
||
|
>char=</B
|
||
|
></A
|
||
|
></TD
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE="padding-left:1em;"
|
||
|
> <A HREF="f_upper-case-p.html" CLASS="misc"
|
||
|
><B
|
||
|
>upper-case-p</B
|
||
|
></A
|
||
|
></TD
|
||
|
></TR
|
||
|
></TBODY
|
||
|
></TABLE
|
||
|
></DIV
|
||
|
><FIGCAPTION CLASS="caption"
|
||
|
><B
|
||
|
>Figure 13–1. Character defined names – 1</B
|
||
|
></FIGCAPTION
|
||
|
></FIGURE
|
||
|
></DIV
|
||
|
><P CLASS="j"
|
||
|
>Figure 13–2 lists some <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> construction and conversion <A HREF="26_1_Glossary.html#defined_name"
|
||
|
><EM CLASS="term"
|
||
|
>defined names</EM
|
||
|
></A
|
||
|
>.</P
|
||
|
><DIV CLASS="displaythree"
|
||
|
><FIGURE CLASS="boxfig"
|
||
|
><DIV CLASS="figbody"
|
||
|
><TABLE CELLSPACING="0" CELLPADDING="0" RULES="GROUPS" STYLE="margin: 1ex 0" WIDTH="100%"
|
||
|
><TBODY
|
||
|
><TR
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE=";padding-right:1em"
|
||
|
><A HREF="f_char-code.html" CLASS="misc"
|
||
|
><B
|
||
|
>char-code</B
|
||
|
></A
|
||
|
></TD
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE="padding-left:1em;padding-right:1em"
|
||
|
> <A HREF="f_char-name.html" CLASS="misc"
|
||
|
><B
|
||
|
>char-name</B
|
||
|
></A
|
||
|
></TD
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE="padding-left:1em;"
|
||
|
> <A HREF="f_code-char.html" CLASS="misc"
|
||
|
><B
|
||
|
>code-char</B
|
||
|
></A
|
||
|
></TD
|
||
|
></TR
|
||
|
><TR
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE=";padding-right:1em"
|
||
|
> <A HREF="f_char-upcase.html" CLASS="misc"
|
||
|
><B
|
||
|
>char-downcase</B
|
||
|
></A
|
||
|
></TD
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE="padding-left:1em;padding-right:1em"
|
||
|
> <A HREF="f_char-upcase.html" CLASS="misc"
|
||
|
><B
|
||
|
>char-upcase</B
|
||
|
></A
|
||
|
></TD
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE="padding-left:1em;"
|
||
|
> <A HREF="f_digit-char.html" CLASS="misc"
|
||
|
><B
|
||
|
>digit-char</B
|
||
|
></A
|
||
|
></TD
|
||
|
></TR
|
||
|
><TR
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE=";padding-right:1em"
|
||
|
> <A HREF="f_char-int.html" CLASS="misc"
|
||
|
><B
|
||
|
>char-int</B
|
||
|
></A
|
||
|
></TD
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE="padding-left:1em;padding-right:1em"
|
||
|
> <A HREF="f_character.html" CLASS="funref"
|
||
|
><B
|
||
|
>character</B
|
||
|
></A
|
||
|
></TD
|
||
|
><TD ALIGN="LEFT" VALIGN="BASELINE" NOWRAP="NOWRAP" STYLE="padding-left:1em;"
|
||
|
> <A HREF="f_name-char.html" CLASS="misc"
|
||
|
><B
|
||
|
>name-char</B
|
||
|
></A
|
||
|
></TD
|
||
|
></TR
|
||
|
></TBODY
|
||
|
></TABLE
|
||
|
></DIV
|
||
|
><FIGCAPTION CLASS="caption"
|
||
|
><B
|
||
|
>Figure 13–2. Character defined names – 2</B
|
||
|
></FIGCAPTION
|
||
|
></FIGURE
|
||
|
></DIV
|
||
|
><H3 ID="sec_13_1_2" CLASS="HeadIII"
|
||
|
>13.1.2 Introduction to Scripts and Repertoires</H3
|
||
|
><H4 ID="sec_13_1_2_1" CLASS="HeadIV"
|
||
|
>13.1.2.1 Character Scripts</H4
|
||
|
><P CLASS="j"
|
||
|
>A <A HREF="26_1_Glossary.html#script"
|
||
|
><EM CLASS="term"
|
||
|
>script</EM
|
||
|
></A
|
||
|
> is one of possibly several sets that form an <A HREF="26_1_Glossary.html#exhaustive_partition"
|
||
|
><EM CLASS="term"
|
||
|
>exhaustive partition</EM
|
||
|
></A
|
||
|
> of the type <A HREF="t_character.html" CLASS="typeref"
|
||
|
><B
|
||
|
>character</B
|
||
|
></A
|
||
|
>. </P
|
||
|
><P CLASS="j"
|
||
|
>The number of such sets and boundaries between them is <A HREF="26_1_Glossary.html#implementation-defined"
|
||
|
><EM CLASS="term"
|
||
|
>implementation-defined</EM
|
||
|
></A
|
||
|
>. Common Lisp does not require these sets to be <A HREF="26_1_Glossary.html#type"
|
||
|
><EM CLASS="term"
|
||
|
>types</EM
|
||
|
></A
|
||
|
>, but an <A HREF="26_1_Glossary.html#implementation"
|
||
|
><EM CLASS="term"
|
||
|
>implementation</EM
|
||
|
></A
|
||
|
> is permitted to define such <A HREF="26_1_Glossary.html#type"
|
||
|
><EM CLASS="term"
|
||
|
>types</EM
|
||
|
></A
|
||
|
> as an extension. Since no <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> from one <A HREF="26_1_Glossary.html#script"
|
||
|
><EM CLASS="term"
|
||
|
>script</EM
|
||
|
></A
|
||
|
> can ever be a member of another <A HREF="26_1_Glossary.html#script"
|
||
|
><EM CLASS="term"
|
||
|
>script</EM
|
||
|
></A
|
||
|
>, it is generally more useful to speak about <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#repertoire"
|
||
|
><EM CLASS="term"
|
||
|
>repertoires</EM
|
||
|
></A
|
||
|
>. </P
|
||
|
><P CLASS="j"
|
||
|
>Although the term “<A HREF="26_1_Glossary.html#script"
|
||
|
><EM CLASS="term"
|
||
|
>script</EM
|
||
|
></A
|
||
|
>” is chosen for definitional compatibility with ISO terminology, no <A HREF="26_1_Glossary.html#conforming_implementation"
|
||
|
><EM CLASS="term"
|
||
|
>conforming implementation</EM
|
||
|
></A
|
||
|
> is required to use any particular <A HREF="26_1_Glossary.html#script"
|
||
|
><EM CLASS="term"
|
||
|
>scripts</EM
|
||
|
></A
|
||
|
> standardized by ISO or by any other standards organization. </P
|
||
|
><P CLASS="j"
|
||
|
>Whether and how the <A HREF="26_1_Glossary.html#script"
|
||
|
><EM CLASS="term"
|
||
|
>script</EM
|
||
|
></A
|
||
|
> or <A HREF="26_1_Glossary.html#script"
|
||
|
><EM CLASS="term"
|
||
|
>scripts</EM
|
||
|
></A
|
||
|
> used by any given <A HREF="26_1_Glossary.html#implementation"
|
||
|
><EM CLASS="term"
|
||
|
>implementation</EM
|
||
|
></A
|
||
|
> are named is <A HREF="26_1_Glossary.html#implementation-dependent"
|
||
|
><EM CLASS="term"
|
||
|
>implementation-dependent</EM
|
||
|
></A
|
||
|
>.</P
|
||
|
><H4 ID="sec_13_1_2_2" CLASS="HeadIV"
|
||
|
>13.1.2.2 Character Repertoires</H4
|
||
|
><P CLASS="j"
|
||
|
>A <DFN CLASS="newterm"
|
||
|
><SPAN CLASS="cmbxsl"
|
||
|
>repertoire</SPAN
|
||
|
></DFN
|
||
|
> <SPAN CLASS="idx" DATA-KIND="idxterm" DATA-TERM="repertoire"
|
||
|
></SPAN
|
||
|
>is a <A HREF="26_1_Glossary.html#type_specifier"
|
||
|
><EM CLASS="term"
|
||
|
>type specifier</EM
|
||
|
></A
|
||
|
> for a <A HREF="26_1_Glossary.html#subtype"
|
||
|
><EM CLASS="term"
|
||
|
>subtype</EM
|
||
|
></A
|
||
|
> of <A HREF="26_1_Glossary.html#type"
|
||
|
><EM CLASS="term"
|
||
|
>type</EM
|
||
|
></A
|
||
|
> <A HREF="t_character.html" CLASS="typeref"
|
||
|
><B
|
||
|
>character</B
|
||
|
></A
|
||
|
>. This term is generally used when describing a collection of <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
> independent of their coding. <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>Characters</EM
|
||
|
></A
|
||
|
> in <A HREF="26_1_Glossary.html#repertoire"
|
||
|
><EM CLASS="term"
|
||
|
>repertoires</EM
|
||
|
></A
|
||
|
> are only identified by name, by <A HREF="26_1_Glossary.html#glyph"
|
||
|
><EM CLASS="term"
|
||
|
>glyph</EM
|
||
|
></A
|
||
|
>, or by character description. </P
|
||
|
><P CLASS="j"
|
||
|
>A <A HREF="26_1_Glossary.html#repertoire"
|
||
|
><EM CLASS="term"
|
||
|
>repertoire</EM
|
||
|
></A
|
||
|
> can contain <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
> from several <A HREF="26_1_Glossary.html#script"
|
||
|
><EM CLASS="term"
|
||
|
>scripts</EM
|
||
|
></A
|
||
|
>, and a <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> can appear in more than one <A HREF="26_1_Glossary.html#repertoire"
|
||
|
><EM CLASS="term"
|
||
|
>repertoire</EM
|
||
|
></A
|
||
|
>. </P
|
||
|
><P CLASS="j"
|
||
|
>For some examples of <A HREF="26_1_Glossary.html#repertoire"
|
||
|
><EM CLASS="term"
|
||
|
>repertoires</EM
|
||
|
></A
|
||
|
>, see the coded character standards ISO 8859/1, ISO 8859/2, and ISO 6937/2. Note, however, that although the term “<A HREF="26_1_Glossary.html#repertoire"
|
||
|
><EM CLASS="term"
|
||
|
>repertoire</EM
|
||
|
></A
|
||
|
>” is chosen for definitional compatibility with ISO terminology, no <A HREF="26_1_Glossary.html#conforming_implementation"
|
||
|
><EM CLASS="term"
|
||
|
>conforming implementation</EM
|
||
|
></A
|
||
|
> is required to use <A HREF="26_1_Glossary.html#repertoire"
|
||
|
><EM CLASS="term"
|
||
|
>repertoires</EM
|
||
|
></A
|
||
|
> standardized by ISO or any other standards organization.</P
|
||
|
><H3 ID="sec_13_1_3" CLASS="HeadIII"
|
||
|
>13.1.3 Character Attributes</H3
|
||
|
><P CLASS="j"
|
||
|
><A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>Characters</EM
|
||
|
></A
|
||
|
> have only one <A HREF="26_1_Glossary.html#standardized"
|
||
|
><EM CLASS="term"
|
||
|
>standardized</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#attribute"
|
||
|
><EM CLASS="term"
|
||
|
>attribute</EM
|
||
|
></A
|
||
|
>: a <A HREF="26_1_Glossary.html#code"
|
||
|
><EM CLASS="term"
|
||
|
>code</EM
|
||
|
></A
|
||
|
>. A <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
>’s <A HREF="26_1_Glossary.html#code"
|
||
|
><EM CLASS="term"
|
||
|
>code</EM
|
||
|
></A
|
||
|
> is a non-negative <A HREF="26_1_Glossary.html#integer"
|
||
|
><EM CLASS="term"
|
||
|
>integer</EM
|
||
|
></A
|
||
|
>. This <A HREF="26_1_Glossary.html#code"
|
||
|
><EM CLASS="term"
|
||
|
>code</EM
|
||
|
></A
|
||
|
> is composed from a character <A HREF="26_1_Glossary.html#script"
|
||
|
><EM CLASS="term"
|
||
|
>script</EM
|
||
|
></A
|
||
|
> and a character label in an <A HREF="26_1_Glossary.html#implementation-dependent"
|
||
|
><EM CLASS="term"
|
||
|
>implementation-dependent</EM
|
||
|
></A
|
||
|
> way. See the <A HREF="26_1_Glossary.html#function"
|
||
|
><EM CLASS="term"
|
||
|
>functions</EM
|
||
|
></A
|
||
|
> <A HREF="f_char-code.html" CLASS="funref"
|
||
|
><B
|
||
|
>char-code</B
|
||
|
></A
|
||
|
> and <A HREF="f_code-char.html" CLASS="funref"
|
||
|
><B
|
||
|
>code-char</B
|
||
|
></A
|
||
|
>. </P
|
||
|
><P CLASS="j"
|
||
|
>Additional, <A HREF="26_1_Glossary.html#implementation-defined"
|
||
|
><EM CLASS="term"
|
||
|
>implementation-defined</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#attribute"
|
||
|
><EM CLASS="term"
|
||
|
>attributes</EM
|
||
|
></A
|
||
|
> of <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
> are also permitted so that, for example, two <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
> with the same <A HREF="26_1_Glossary.html#code"
|
||
|
><EM CLASS="term"
|
||
|
>code</EM
|
||
|
></A
|
||
|
> may differ in some other, <A HREF="26_1_Glossary.html#implementation-defined"
|
||
|
><EM CLASS="term"
|
||
|
>implementation-defined</EM
|
||
|
></A
|
||
|
> way. </P
|
||
|
><P CLASS="j"
|
||
|
>For any <A HREF="26_1_Glossary.html#implementation-defined"
|
||
|
><EM CLASS="term"
|
||
|
>implementation-defined</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#attribute"
|
||
|
><EM CLASS="term"
|
||
|
>attribute</EM
|
||
|
></A
|
||
|
> there is a distinguished value called the <DFN CLASS="newterm"
|
||
|
><SPAN CLASS="cmbxsl"
|
||
|
>null</SPAN
|
||
|
></DFN
|
||
|
> <SPAN CLASS="idx" DATA-KIND="idxterm" DATA-TERM="null"
|
||
|
></SPAN
|
||
|
>value for that <A HREF="26_1_Glossary.html#attribute"
|
||
|
><EM CLASS="term"
|
||
|
>attribute</EM
|
||
|
></A
|
||
|
>. A <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> for which each <A HREF="26_1_Glossary.html#implementation-defined"
|
||
|
><EM CLASS="term"
|
||
|
>implementation-defined</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#attribute"
|
||
|
><EM CLASS="term"
|
||
|
>attribute</EM
|
||
|
></A
|
||
|
> has the null value for that <A HREF="26_1_Glossary.html#attribute"
|
||
|
><EM CLASS="term"
|
||
|
>attribute</EM
|
||
|
></A
|
||
|
> is called a <A HREF="26_1_Glossary.html#simple"
|
||
|
><EM CLASS="term"
|
||
|
>simple</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
>. If the <A HREF="26_1_Glossary.html#implementation"
|
||
|
><EM CLASS="term"
|
||
|
>implementation</EM
|
||
|
></A
|
||
|
> has no <A HREF="26_1_Glossary.html#implementation-defined"
|
||
|
><EM CLASS="term"
|
||
|
>implementation-defined</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#attribute"
|
||
|
><EM CLASS="term"
|
||
|
>attributes</EM
|
||
|
></A
|
||
|
>, then all <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
> are <A HREF="26_1_Glossary.html#simple"
|
||
|
><EM CLASS="term"
|
||
|
>simple</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
>.</P
|
||
|
><H3 ID="sec_13_1_4" CLASS="HeadIII"
|
||
|
>13.1.4 Character Categories</H3
|
||
|
><P CLASS="j"
|
||
|
>There are several (overlapping) categories of <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
> that have no formally associated <A HREF="26_1_Glossary.html#type"
|
||
|
><EM CLASS="term"
|
||
|
>type</EM
|
||
|
></A
|
||
|
> but that are nevertheless useful to name. They include <A HREF="26_1_Glossary.html#graphic"
|
||
|
><EM CLASS="term"
|
||
|
>graphic</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
>, <A HREF="26_1_Glossary.html#alphabetic"
|
||
|
><EM CLASS="term"
|
||
|
>alphabetic</EM
|
||
|
></A
|
||
|
><SPAN CLASS="meaning"
|
||
|
><SUB CLASS="sub"
|
||
|
><SPAN CLASS="cmr"
|
||
|
>1</SPAN
|
||
|
></SUB
|
||
|
></SPAN
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
>, <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
> with <A HREF="26_1_Glossary.html#case"
|
||
|
><EM CLASS="term"
|
||
|
>case</EM
|
||
|
></A
|
||
|
> (<A HREF="26_1_Glossary.html#uppercase"
|
||
|
><EM CLASS="term"
|
||
|
>uppercase</EM
|
||
|
></A
|
||
|
> and <A HREF="26_1_Glossary.html#lowercase"
|
||
|
><EM CLASS="term"
|
||
|
>lowercase</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
>), <A HREF="26_1_Glossary.html#numeric"
|
||
|
><EM CLASS="term"
|
||
|
>numeric</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
>, <A HREF="26_1_Glossary.html#alphanumeric"
|
||
|
><EM CLASS="term"
|
||
|
>alphanumeric</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
>, and <A HREF="26_1_Glossary.html#digit"
|
||
|
><EM CLASS="term"
|
||
|
>digits</EM
|
||
|
></A
|
||
|
> (in a given <A HREF="26_1_Glossary.html#radix"
|
||
|
><EM CLASS="term"
|
||
|
>radix</EM
|
||
|
></A
|
||
|
>). </P
|
||
|
><P CLASS="j"
|
||
|
>For each <A HREF="26_1_Glossary.html#implementation-defined"
|
||
|
><EM CLASS="term"
|
||
|
>implementation-defined</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#attribute"
|
||
|
><EM CLASS="term"
|
||
|
>attribute</EM
|
||
|
></A
|
||
|
> of a <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
>, the documentation for that <A HREF="26_1_Glossary.html#implementation"
|
||
|
><EM CLASS="term"
|
||
|
>implementation</EM
|
||
|
></A
|
||
|
> must specify whether <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
> that differ only in that <A HREF="26_1_Glossary.html#attribute"
|
||
|
><EM CLASS="term"
|
||
|
>attribute</EM
|
||
|
></A
|
||
|
> are permitted to differ in whether are not they are members of one of the aforementioned categories. </P
|
||
|
><P CLASS="j"
|
||
|
>Note that these terms are defined independently of any special syntax which might have been enabled in the <A HREF="26_1_Glossary.html#current_readtable"
|
||
|
><EM CLASS="term"
|
||
|
>current readtable</EM
|
||
|
></A
|
||
|
>.</P
|
||
|
><H4 ID="sec_13_1_4_1" CLASS="HeadIV"
|
||
|
>13.1.4.1 Graphic Characters</H4
|
||
|
><P CLASS="j"
|
||
|
><A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>Characters</EM
|
||
|
></A
|
||
|
> that are classified as <DFN CLASS="newterm"
|
||
|
><SPAN CLASS="cmbxsl"
|
||
|
>graphic</SPAN
|
||
|
></DFN
|
||
|
><SPAN CLASS="idx" DATA-KIND="idxterm" DATA-TERM="graphic"
|
||
|
></SPAN
|
||
|
>, or displayable, are each associated with a glyph, a visual representation of the <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
>. </P
|
||
|
><P CLASS="j"
|
||
|
>A <A HREF="26_1_Glossary.html#graphic"
|
||
|
><EM CLASS="term"
|
||
|
>graphic</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> is one that has a standard textual representation as a single <A HREF="26_1_Glossary.html#glyph"
|
||
|
><EM CLASS="term"
|
||
|
>glyph</EM
|
||
|
></A
|
||
|
>, such as <CODE CLASS="f"
|
||
|
>A</CODE
|
||
|
> or <CODE CLASS="f"
|
||
|
>*</CODE
|
||
|
> or <CODE CLASS="f"
|
||
|
>=</CODE
|
||
|
>. <A HREF="26_1_Glossary.html#space"
|
||
|
><EM CLASS="term"
|
||
|
>Space</EM
|
||
|
></A
|
||
|
>, which effectively has a blank <A HREF="26_1_Glossary.html#glyph"
|
||
|
><EM CLASS="term"
|
||
|
>glyph</EM
|
||
|
></A
|
||
|
>, is defined to be a <A HREF="26_1_Glossary.html#graphic"
|
||
|
><EM CLASS="term"
|
||
|
>graphic</EM
|
||
|
></A
|
||
|
>. </P
|
||
|
><P CLASS="j"
|
||
|
>Of the <A HREF="26_1_Glossary.html#standard_character"
|
||
|
><EM CLASS="term"
|
||
|
>standard characters</EM
|
||
|
></A
|
||
|
>, <A HREF="26_1_Glossary.html#newline"
|
||
|
><EM CLASS="term"
|
||
|
>newline</EM
|
||
|
></A
|
||
|
> is <A HREF="26_1_Glossary.html#non-graphic"
|
||
|
><EM CLASS="term"
|
||
|
>non-graphic</EM
|
||
|
></A
|
||
|
> and all others are <A HREF="26_1_Glossary.html#graphic"
|
||
|
><EM CLASS="term"
|
||
|
>graphic</EM
|
||
|
></A
|
||
|
>; see <A HREF="2_1_Character_Syntax.html#sec_2_1_3" CLASS="secref"
|
||
|
><SPAN CLASS="cmr"
|
||
|
>Section</SPAN
|
||
|
> <SPAN CLASS="cmr"
|
||
|
>2.1.3</SPAN
|
||
|
> <SPAN CLASS="cmr"
|
||
|
>(Standard</SPAN
|
||
|
> <SPAN CLASS="cmr"
|
||
|
>Characters)</SPAN
|
||
|
></A
|
||
|
>. </P
|
||
|
><P CLASS="j"
|
||
|
><A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>Characters</EM
|
||
|
></A
|
||
|
> that are not <A HREF="26_1_Glossary.html#graphic"
|
||
|
><EM CLASS="term"
|
||
|
>graphic</EM
|
||
|
></A
|
||
|
> are called <DFN CLASS="newterm"
|
||
|
><SPAN CLASS="cmbxsl"
|
||
|
>non-graphic</SPAN
|
||
|
></DFN
|
||
|
><SPAN CLASS="idx" DATA-KIND="idxterm" DATA-TERM="non-graphic"
|
||
|
></SPAN
|
||
|
>. <A HREF="26_1_Glossary.html#non-graphic"
|
||
|
><EM CLASS="term"
|
||
|
>Non-graphic</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
> are sometimes informally called “formatting characters” or “control characters.” </P
|
||
|
><P CLASS="j"
|
||
|
><CODE CLASS="f"
|
||
|
>#\Backspace</CODE
|
||
|
>, <CODE CLASS="f"
|
||
|
>#\Tab</CODE
|
||
|
>, <CODE CLASS="f"
|
||
|
>#\Rubout</CODE
|
||
|
>, <CODE CLASS="f"
|
||
|
>#\Linefeed</CODE
|
||
|
>, <CODE CLASS="f"
|
||
|
>#\Return</CODE
|
||
|
>, and <CODE CLASS="f"
|
||
|
>#\Page</CODE
|
||
|
>, if they are supported by the <A HREF="26_1_Glossary.html#implementation"
|
||
|
><EM CLASS="term"
|
||
|
>implementation</EM
|
||
|
></A
|
||
|
>, are <A HREF="26_1_Glossary.html#non-graphic"
|
||
|
><EM CLASS="term"
|
||
|
>non-graphic</EM
|
||
|
></A
|
||
|
>.</P
|
||
|
><H4 ID="sec_13_1_4_2" CLASS="HeadIV"
|
||
|
>13.1.4.2 Alphabetic Characters</H4
|
||
|
><P CLASS="j"
|
||
|
>The <A HREF="26_1_Glossary.html#alphabetic"
|
||
|
><EM CLASS="term"
|
||
|
>alphabetic</EM
|
||
|
></A
|
||
|
><SPAN CLASS="meaning"
|
||
|
><SUB CLASS="sub"
|
||
|
><SPAN CLASS="cmr"
|
||
|
>1</SPAN
|
||
|
></SUB
|
||
|
></SPAN
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
> are a subset of the <A HREF="26_1_Glossary.html#graphic"
|
||
|
><EM CLASS="term"
|
||
|
>graphic</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
>. Of the <A HREF="26_1_Glossary.html#standard_character"
|
||
|
><EM CLASS="term"
|
||
|
>standard characters</EM
|
||
|
></A
|
||
|
>, only these are the <A HREF="26_1_Glossary.html#alphabetic"
|
||
|
><EM CLASS="term"
|
||
|
>alphabetic</EM
|
||
|
></A
|
||
|
><SPAN CLASS="meaning"
|
||
|
><SUB CLASS="sub"
|
||
|
><SPAN CLASS="cmr"
|
||
|
>1</SPAN
|
||
|
></SUB
|
||
|
></SPAN
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
>: </P
|
||
|
><P CLASS="j"
|
||
|
><CODE CLASS="f"
|
||
|
>A B C D E F G H I J K L M N O P Q R S T U V W X Y Z</CODE
|
||
|
> </P
|
||
|
><P CLASS="j"
|
||
|
><CODE CLASS="f"
|
||
|
>a b c d e f g h i j k l m n o p q r s t u v w x y z</CODE
|
||
|
> </P
|
||
|
><P CLASS="j"
|
||
|
>Any <A HREF="26_1_Glossary.html#implementation-defined"
|
||
|
><EM CLASS="term"
|
||
|
>implementation-defined</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> that has <A HREF="26_1_Glossary.html#case"
|
||
|
><EM CLASS="term"
|
||
|
>case</EM
|
||
|
></A
|
||
|
> must be <A HREF="26_1_Glossary.html#alphabetic"
|
||
|
><EM CLASS="term"
|
||
|
>alphabetic</EM
|
||
|
></A
|
||
|
><SPAN CLASS="meaning"
|
||
|
><SUB CLASS="sub"
|
||
|
><SPAN CLASS="cmr"
|
||
|
>1</SPAN
|
||
|
></SUB
|
||
|
></SPAN
|
||
|
>. For each <A HREF="26_1_Glossary.html#implementation-defined"
|
||
|
><EM CLASS="term"
|
||
|
>implementation-defined</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#graphic"
|
||
|
><EM CLASS="term"
|
||
|
>graphic</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> that has no <A HREF="26_1_Glossary.html#case"
|
||
|
><EM CLASS="term"
|
||
|
>case</EM
|
||
|
></A
|
||
|
>, it is <A HREF="26_1_Glossary.html#implementation-defined"
|
||
|
><EM CLASS="term"
|
||
|
>implementation-defined</EM
|
||
|
></A
|
||
|
> whether that <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> is <A HREF="26_1_Glossary.html#alphabetic"
|
||
|
><EM CLASS="term"
|
||
|
>alphabetic</EM
|
||
|
></A
|
||
|
><SPAN CLASS="meaning"
|
||
|
><SUB CLASS="sub"
|
||
|
><SPAN CLASS="cmr"
|
||
|
>1</SPAN
|
||
|
></SUB
|
||
|
></SPAN
|
||
|
>.</P
|
||
|
><H4 ID="sec_13_1_4_3" CLASS="HeadIV"
|
||
|
>13.1.4.3 Characters With Case</H4
|
||
|
><P CLASS="j"
|
||
|
>The <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
> with <A HREF="26_1_Glossary.html#case"
|
||
|
><EM CLASS="term"
|
||
|
>case</EM
|
||
|
></A
|
||
|
> are a subset of the <A HREF="26_1_Glossary.html#alphabetic"
|
||
|
><EM CLASS="term"
|
||
|
>alphabetic</EM
|
||
|
></A
|
||
|
><SPAN CLASS="meaning"
|
||
|
><SUB CLASS="sub"
|
||
|
><SPAN CLASS="cmr"
|
||
|
>1</SPAN
|
||
|
></SUB
|
||
|
></SPAN
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
>. A <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> with <A HREF="26_1_Glossary.html#case"
|
||
|
><EM CLASS="term"
|
||
|
>case</EM
|
||
|
></A
|
||
|
> has the property of being either <A HREF="26_1_Glossary.html#uppercase"
|
||
|
><EM CLASS="term"
|
||
|
>uppercase</EM
|
||
|
></A
|
||
|
> or <A HREF="26_1_Glossary.html#lowercase"
|
||
|
><EM CLASS="term"
|
||
|
>lowercase</EM
|
||
|
></A
|
||
|
>. Every <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> with <A HREF="26_1_Glossary.html#case"
|
||
|
><EM CLASS="term"
|
||
|
>case</EM
|
||
|
></A
|
||
|
> is in one-to-one correspondence with some other <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> with the opposite <A HREF="26_1_Glossary.html#case"
|
||
|
><EM CLASS="term"
|
||
|
>case</EM
|
||
|
></A
|
||
|
>.</P
|
||
|
><H5 ID="sec_13_1_4_3_1" CLASS="HeadV"
|
||
|
>13.1.4.3.1 Uppercase Characters</H5
|
||
|
><P CLASS="j"
|
||
|
>An uppercase <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> is one that has a corresponding <A HREF="26_1_Glossary.html#lowercase"
|
||
|
><EM CLASS="term"
|
||
|
>lowercase</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> that is <A HREF="26_1_Glossary.html#different"
|
||
|
><EM CLASS="term"
|
||
|
>different</EM
|
||
|
></A
|
||
|
> (and can be obtained using <A HREF="f_char-upcase.html" CLASS="funref"
|
||
|
><B
|
||
|
>char-downcase</B
|
||
|
></A
|
||
|
>). </P
|
||
|
><P CLASS="j"
|
||
|
>Of the <A HREF="26_1_Glossary.html#standard_character"
|
||
|
><EM CLASS="term"
|
||
|
>standard characters</EM
|
||
|
></A
|
||
|
>, only these are <A HREF="26_1_Glossary.html#uppercase"
|
||
|
><EM CLASS="term"
|
||
|
>uppercase</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
>: </P
|
||
|
><P CLASS="j"
|
||
|
><CODE CLASS="f"
|
||
|
>A B C D E F G H I J K L M N O P Q R S T U V W X Y Z</CODE
|
||
|
></P
|
||
|
><H5 ID="sec_13_1_4_3_2" CLASS="HeadV"
|
||
|
>13.1.4.3.2 Lowercase Characters</H5
|
||
|
><P CLASS="j"
|
||
|
>A lowercase <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> is one that has a corresponding <A HREF="26_1_Glossary.html#uppercase"
|
||
|
><EM CLASS="term"
|
||
|
>uppercase</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> that is <A HREF="26_1_Glossary.html#different"
|
||
|
><EM CLASS="term"
|
||
|
>different</EM
|
||
|
></A
|
||
|
> (and can be obtained using <A HREF="f_char-upcase.html" CLASS="funref"
|
||
|
><B
|
||
|
>char-upcase</B
|
||
|
></A
|
||
|
>). </P
|
||
|
><P CLASS="j"
|
||
|
>Of the <A HREF="26_1_Glossary.html#standard_character"
|
||
|
><EM CLASS="term"
|
||
|
>standard characters</EM
|
||
|
></A
|
||
|
>, only these are <A HREF="26_1_Glossary.html#lowercase"
|
||
|
><EM CLASS="term"
|
||
|
>lowercase</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
>: </P
|
||
|
><P CLASS="j"
|
||
|
><CODE CLASS="f"
|
||
|
>a b c d e f g h i j k l m n o p q r s t u v w x y z</CODE
|
||
|
></P
|
||
|
><H5 ID="sec_13_1_4_3_3" CLASS="HeadV"
|
||
|
>13.1.4.3.3 Corresponding Characters in the Other Case</H5
|
||
|
><P CLASS="j"
|
||
|
>The <A HREF="26_1_Glossary.html#uppercase"
|
||
|
><EM CLASS="term"
|
||
|
>uppercase</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#standard_character"
|
||
|
><EM CLASS="term"
|
||
|
>standard characters</EM
|
||
|
></A
|
||
|
> <CODE CLASS="f"
|
||
|
>A</CODE
|
||
|
> through <CODE CLASS="f"
|
||
|
>Z</CODE
|
||
|
> mentioned above respectively correspond to the <A HREF="26_1_Glossary.html#lowercase"
|
||
|
><EM CLASS="term"
|
||
|
>lowercase</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#standard_character"
|
||
|
><EM CLASS="term"
|
||
|
>standard characters</EM
|
||
|
></A
|
||
|
> <CODE CLASS="f"
|
||
|
>a</CODE
|
||
|
> through <CODE CLASS="f"
|
||
|
>z</CODE
|
||
|
> mentioned above. For example, the <A HREF="26_1_Glossary.html#uppercase"
|
||
|
><EM CLASS="term"
|
||
|
>uppercase</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> <CODE CLASS="f"
|
||
|
>E</CODE
|
||
|
> corresponds to the <A HREF="26_1_Glossary.html#lowercase"
|
||
|
><EM CLASS="term"
|
||
|
>lowercase</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> <CODE CLASS="f"
|
||
|
>e</CODE
|
||
|
>, and vice versa.</P
|
||
|
><H5 ID="sec_13_1_4_3_4" CLASS="HeadV"
|
||
|
>13.1.4.3.4 Case of Implementation-Defined Characters</H5
|
||
|
><P CLASS="j"
|
||
|
>An <A HREF="26_1_Glossary.html#implementation"
|
||
|
><EM CLASS="term"
|
||
|
>implementation</EM
|
||
|
></A
|
||
|
> may define that other <A HREF="26_1_Glossary.html#implementation-defined"
|
||
|
><EM CLASS="term"
|
||
|
>implementation-defined</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#graphic"
|
||
|
><EM CLASS="term"
|
||
|
>graphic</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
> have <A HREF="26_1_Glossary.html#case"
|
||
|
><EM CLASS="term"
|
||
|
>case</EM
|
||
|
></A
|
||
|
>. Such definitions must always be done in pairs — one <A HREF="26_1_Glossary.html#uppercase"
|
||
|
><EM CLASS="term"
|
||
|
>uppercase</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> in one-to-one <EM CLASS="term"
|
||
|
>correspondence</EM
|
||
|
> with one <A HREF="26_1_Glossary.html#lowercase"
|
||
|
><EM CLASS="term"
|
||
|
>lowercase</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
>.</P
|
||
|
><H4 ID="sec_13_1_4_4" CLASS="HeadIV"
|
||
|
>13.1.4.4 Numeric Characters</H4
|
||
|
><P CLASS="j"
|
||
|
>The <A HREF="26_1_Glossary.html#numeric"
|
||
|
><EM CLASS="term"
|
||
|
>numeric</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
> are a subset of the <A HREF="26_1_Glossary.html#graphic"
|
||
|
><EM CLASS="term"
|
||
|
>graphic</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
>. Of the <A HREF="26_1_Glossary.html#standard_character"
|
||
|
><EM CLASS="term"
|
||
|
>standard characters</EM
|
||
|
></A
|
||
|
>, only these are <A HREF="26_1_Glossary.html#numeric"
|
||
|
><EM CLASS="term"
|
||
|
>numeric</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
>: </P
|
||
|
><P CLASS="j"
|
||
|
><CODE CLASS="f"
|
||
|
>0 1 2 3 4 5 6 7 8 9</CODE
|
||
|
> </P
|
||
|
><P CLASS="j"
|
||
|
>For each <A HREF="26_1_Glossary.html#implementation-defined"
|
||
|
><EM CLASS="term"
|
||
|
>implementation-defined</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#graphic"
|
||
|
><EM CLASS="term"
|
||
|
>graphic</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> that has no <A HREF="26_1_Glossary.html#case"
|
||
|
><EM CLASS="term"
|
||
|
>case</EM
|
||
|
></A
|
||
|
>, the <A HREF="26_1_Glossary.html#implementation"
|
||
|
><EM CLASS="term"
|
||
|
>implementation</EM
|
||
|
></A
|
||
|
> must define whether or not it is a <A HREF="26_1_Glossary.html#numeric"
|
||
|
><EM CLASS="term"
|
||
|
>numeric</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
>.</P
|
||
|
><H4 ID="sec_13_1_4_5" CLASS="HeadIV"
|
||
|
>13.1.4.5 Alphanumeric Characters</H4
|
||
|
><P CLASS="j"
|
||
|
>The set of <A HREF="26_1_Glossary.html#alphanumeric"
|
||
|
><EM CLASS="term"
|
||
|
>alphanumeric</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
> is the union of the set of <A HREF="26_1_Glossary.html#alphabetic"
|
||
|
><EM CLASS="term"
|
||
|
>alphabetic</EM
|
||
|
></A
|
||
|
><SPAN CLASS="meaning"
|
||
|
><SUB CLASS="sub"
|
||
|
><SPAN CLASS="cmr"
|
||
|
>1</SPAN
|
||
|
></SUB
|
||
|
></SPAN
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
> and the set of <A HREF="26_1_Glossary.html#numeric"
|
||
|
><EM CLASS="term"
|
||
|
>numeric</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
>.</P
|
||
|
><H4 ID="sec_13_1_4_6" CLASS="HeadIV"
|
||
|
>13.1.4.6 Digits in a Radix</H4
|
||
|
><P CLASS="j"
|
||
|
>What qualifies as a <A HREF="26_1_Glossary.html#digit"
|
||
|
><EM CLASS="term"
|
||
|
>digit</EM
|
||
|
></A
|
||
|
> depends on the <A HREF="26_1_Glossary.html#radix"
|
||
|
><EM CLASS="term"
|
||
|
>radix</EM
|
||
|
></A
|
||
|
> (an <A HREF="26_1_Glossary.html#integer"
|
||
|
><EM CLASS="term"
|
||
|
>integer</EM
|
||
|
></A
|
||
|
> between <CODE CLASS="f"
|
||
|
>2</CODE
|
||
|
> and <CODE CLASS="f"
|
||
|
>36</CODE
|
||
|
>, inclusive). The potential <A HREF="26_1_Glossary.html#digit"
|
||
|
><EM CLASS="term"
|
||
|
>digits</EM
|
||
|
></A
|
||
|
> are: </P
|
||
|
><P CLASS="j"
|
||
|
><CODE CLASS="f"
|
||
|
>0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z</CODE
|
||
|
> </P
|
||
|
><P CLASS="j"
|
||
|
>Their respective weights are <CODE CLASS="f"
|
||
|
>0</CODE
|
||
|
>, <CODE CLASS="f"
|
||
|
>1</CODE
|
||
|
>, <CODE CLASS="f"
|
||
|
>2</CODE
|
||
|
>, <I
|
||
|
>.</I
|
||
|
> <I
|
||
|
>.</I
|
||
|
> <I
|
||
|
>.</I
|
||
|
> <CODE CLASS="f"
|
||
|
>35</CODE
|
||
|
>. In any given radix <I
|
||
|
>n</I
|
||
|
>, only the first <I
|
||
|
>n</I
|
||
|
> potential <A HREF="26_1_Glossary.html#digit"
|
||
|
><EM CLASS="term"
|
||
|
>digits</EM
|
||
|
></A
|
||
|
> are considered to be <A HREF="26_1_Glossary.html#digit"
|
||
|
><EM CLASS="term"
|
||
|
>digits</EM
|
||
|
></A
|
||
|
>. For example, the digits in radix <CODE CLASS="f"
|
||
|
>2</CODE
|
||
|
> are <CODE CLASS="f"
|
||
|
>0</CODE
|
||
|
> and <CODE CLASS="f"
|
||
|
>1</CODE
|
||
|
>, the digits in radix <CODE CLASS="f"
|
||
|
>10</CODE
|
||
|
> are <CODE CLASS="f"
|
||
|
>0</CODE
|
||
|
> through <CODE CLASS="f"
|
||
|
>9</CODE
|
||
|
>, and the digits in radix <CODE CLASS="f"
|
||
|
>16</CODE
|
||
|
> are <CODE CLASS="f"
|
||
|
>0</CODE
|
||
|
> through <CODE CLASS="f"
|
||
|
>F</CODE
|
||
|
>. </P
|
||
|
><P CLASS="j"
|
||
|
><A HREF="26_1_Glossary.html#case"
|
||
|
><EM CLASS="term"
|
||
|
>Case</EM
|
||
|
></A
|
||
|
> is not significant in <A HREF="26_1_Glossary.html#digit"
|
||
|
><EM CLASS="term"
|
||
|
>digits</EM
|
||
|
></A
|
||
|
>; for example, in radix <CODE CLASS="f"
|
||
|
>16</CODE
|
||
|
>, both <CODE CLASS="f"
|
||
|
>F</CODE
|
||
|
> and <CODE CLASS="f"
|
||
|
>f</CODE
|
||
|
> are <A HREF="26_1_Glossary.html#digit"
|
||
|
><EM CLASS="term"
|
||
|
>digits</EM
|
||
|
></A
|
||
|
> with weight <CODE CLASS="f"
|
||
|
>15</CODE
|
||
|
>.</P
|
||
|
><H3 ID="sec_13_1_5" CLASS="HeadIII"
|
||
|
>13.1.5 Identity of Characters</H3
|
||
|
><P CLASS="j"
|
||
|
>Two <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
> that are <A HREF="f_eql.html" CLASS="funref"
|
||
|
><B
|
||
|
>eql</B
|
||
|
></A
|
||
|
>, <A HREF="f_char_eq.html" CLASS="funref"
|
||
|
><B
|
||
|
>char=</B
|
||
|
></A
|
||
|
>, or <A HREF="f_char_eq.html" CLASS="funref"
|
||
|
><B
|
||
|
>char-equal</B
|
||
|
></A
|
||
|
> are not necessarily <A HREF="f_eq.html" CLASS="funref"
|
||
|
><B
|
||
|
>eq</B
|
||
|
></A
|
||
|
>.</P
|
||
|
><H3 ID="sec_13_1_6" CLASS="HeadIII"
|
||
|
>13.1.6 Ordering of Characters</H3
|
||
|
><P CLASS="j"
|
||
|
>The total ordering on <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
> is guaranteed to have the following properties:</P
|
||
|
><UL
|
||
|
><LI
|
||
|
><P CLASS="j"
|
||
|
>If two <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
> have the same <A HREF="26_1_Glossary.html#implementation-defined"
|
||
|
><EM CLASS="term"
|
||
|
>implementation-defined</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#attribute"
|
||
|
><EM CLASS="term"
|
||
|
>attributes</EM
|
||
|
></A
|
||
|
>, then their ordering by <A HREF="f_char_eq.html" CLASS="funref"
|
||
|
><B
|
||
|
>char</B
|
||
|
><SPAN CLASS="cmtt"
|
||
|
><</SPAN
|
||
|
></A
|
||
|
> is consistent with the numerical ordering by the predicate <A HREF="f__eq.html" CLASS="funref"
|
||
|
><SPAN CLASS="cmtt"
|
||
|
><</SPAN
|
||
|
></A
|
||
|
> on their code <A HREF="26_1_Glossary.html#attribute"
|
||
|
><EM CLASS="term"
|
||
|
>attributes</EM
|
||
|
></A
|
||
|
>.</P
|
||
|
></LI
|
||
|
><LI
|
||
|
><P CLASS="j"
|
||
|
>If two <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
> differ in any <A HREF="26_1_Glossary.html#attribute"
|
||
|
><EM CLASS="term"
|
||
|
>attribute</EM
|
||
|
></A
|
||
|
>, then they are not <A HREF="f_char_eq.html" CLASS="funref"
|
||
|
><B
|
||
|
>char=</B
|
||
|
></A
|
||
|
>.</P
|
||
|
></LI
|
||
|
><LI
|
||
|
><P CLASS="j"
|
||
|
>The total ordering is not necessarily the same as the total ordering on the <A HREF="26_1_Glossary.html#integer"
|
||
|
><EM CLASS="term"
|
||
|
>integers</EM
|
||
|
></A
|
||
|
> produced by applying <A HREF="f_char-int.html" CLASS="funref"
|
||
|
><B
|
||
|
>char-int</B
|
||
|
></A
|
||
|
> to the <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
>.</P
|
||
|
></LI
|
||
|
><LI
|
||
|
><P CLASS="j"
|
||
|
>While <A HREF="26_1_Glossary.html#alphabetic"
|
||
|
><EM CLASS="term"
|
||
|
>alphabetic</EM
|
||
|
></A
|
||
|
><SPAN CLASS="meaning"
|
||
|
><SUB CLASS="sub"
|
||
|
><SPAN CLASS="cmr"
|
||
|
>1</SPAN
|
||
|
></SUB
|
||
|
></SPAN
|
||
|
> <A HREF="26_1_Glossary.html#standard_character"
|
||
|
><EM CLASS="term"
|
||
|
>standard characters</EM
|
||
|
></A
|
||
|
> of a given <A HREF="26_1_Glossary.html#case"
|
||
|
><EM CLASS="term"
|
||
|
>case</EM
|
||
|
></A
|
||
|
> must obey a partial ordering, they need not be contiguous; it is permissible for <A HREF="26_1_Glossary.html#uppercase"
|
||
|
><EM CLASS="term"
|
||
|
>uppercase</EM
|
||
|
></A
|
||
|
> and <A HREF="26_1_Glossary.html#lowercase"
|
||
|
><EM CLASS="term"
|
||
|
>lowercase</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
> to be interleaved. Thus <CODE CLASS="f"
|
||
|
>(char<= #\a x #\z)</CODE
|
||
|
> is not a valid way of determining whether or not <CODE CLASS="f"
|
||
|
>x</CODE
|
||
|
> is a <A HREF="26_1_Glossary.html#lowercase"
|
||
|
><EM CLASS="term"
|
||
|
>lowercase</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
>.</P
|
||
|
></LI
|
||
|
></UL
|
||
|
><P CLASS="j"
|
||
|
>Of the <A HREF="26_1_Glossary.html#standard_character"
|
||
|
><EM CLASS="term"
|
||
|
>standard characters</EM
|
||
|
></A
|
||
|
>, those which are <A HREF="26_1_Glossary.html#alphanumeric"
|
||
|
><EM CLASS="term"
|
||
|
>alphanumeric</EM
|
||
|
></A
|
||
|
> obey the following partial ordering:</P
|
||
|
><PRE CLASS="screen"
|
||
|
>A<B<C<D<E<F<G<H<I<J<K<L<M<N<O<P<Q<R<S<T<U<V<W<X<Y<Z
|
||
|
a<b<c<d<e<f<g<h<i<j<k<l<m<n<o<p<q<r<s<t<u<v<w<x<y<z
|
||
|
0<1<2<3<4<5<6<7<8<9
|
||
|
either 9<A or Z<0
|
||
|
either 9<a or z<0</PRE
|
||
|
><P CLASS="j"
|
||
|
>This implies that, for <A HREF="26_1_Glossary.html#standard_character"
|
||
|
><EM CLASS="term"
|
||
|
>standard characters</EM
|
||
|
></A
|
||
|
>, <A HREF="26_1_Glossary.html#alphabetic"
|
||
|
><EM CLASS="term"
|
||
|
>alphabetic</EM
|
||
|
></A
|
||
|
><SPAN CLASS="meaning"
|
||
|
><SUB CLASS="sub"
|
||
|
><SPAN CLASS="cmr"
|
||
|
>1</SPAN
|
||
|
></SUB
|
||
|
></SPAN
|
||
|
> ordering holds within each <A HREF="26_1_Glossary.html#case"
|
||
|
><EM CLASS="term"
|
||
|
>case</EM
|
||
|
></A
|
||
|
> (<A HREF="26_1_Glossary.html#uppercase"
|
||
|
><EM CLASS="term"
|
||
|
>uppercase</EM
|
||
|
></A
|
||
|
> and <A HREF="26_1_Glossary.html#lowercase"
|
||
|
><EM CLASS="term"
|
||
|
>lowercase</EM
|
||
|
></A
|
||
|
>), and that the <A HREF="26_1_Glossary.html#numeric"
|
||
|
><EM CLASS="term"
|
||
|
>numeric</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
> as a group are not interleaved with <A HREF="26_1_Glossary.html#alphabetic"
|
||
|
><EM CLASS="term"
|
||
|
>alphabetic</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
>. However, the ordering or possible interleaving of <A HREF="26_1_Glossary.html#uppercase"
|
||
|
><EM CLASS="term"
|
||
|
>uppercase</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
> and <A HREF="26_1_Glossary.html#lowercase"
|
||
|
><EM CLASS="term"
|
||
|
>lowercase</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
> is <A HREF="26_1_Glossary.html#implementation-defined"
|
||
|
><EM CLASS="term"
|
||
|
>implementation-defined</EM
|
||
|
></A
|
||
|
>.</P
|
||
|
><H3 ID="sec_13_1_7" CLASS="HeadIII"
|
||
|
>13.1.7 Character Names</H3
|
||
|
><P CLASS="j"
|
||
|
>The following <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#name"
|
||
|
><EM CLASS="term"
|
||
|
>names</EM
|
||
|
></A
|
||
|
> must be present in all <A HREF="26_1_Glossary.html#conforming_implementation"
|
||
|
><EM CLASS="term"
|
||
|
>conforming implementations</EM
|
||
|
></A
|
||
|
>:</P
|
||
|
><DL
|
||
|
><DT
|
||
|
><CODE CLASS="f"
|
||
|
>Newline</CODE
|
||
|
></DT
|
||
|
><DD
|
||
|
><P CLASS="j"
|
||
|
>The character that represents the division between lines. An implementation must translate between <CODE CLASS="f"
|
||
|
>#\Newline</CODE
|
||
|
>, a single-character representation, and whatever external representation(s) may be used.</P
|
||
|
></DD
|
||
|
><DT
|
||
|
><CODE CLASS="f"
|
||
|
>Space</CODE
|
||
|
></DT
|
||
|
><DD
|
||
|
><P CLASS="j"
|
||
|
>The space or blank character.</P
|
||
|
></DD
|
||
|
></DL
|
||
|
><P CLASS="j"
|
||
|
>The following names are <A HREF="26_1_Glossary.html#semi-standard"
|
||
|
><EM CLASS="term"
|
||
|
>semi-standard</EM
|
||
|
></A
|
||
|
>; if an <A HREF="26_1_Glossary.html#implementation"
|
||
|
><EM CLASS="term"
|
||
|
>implementation</EM
|
||
|
></A
|
||
|
> supports them, they should be used for the described <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>characters</EM
|
||
|
></A
|
||
|
> and no others.</P
|
||
|
><DL
|
||
|
><DT
|
||
|
><CODE CLASS="f"
|
||
|
>Rubout</CODE
|
||
|
></DT
|
||
|
><DD
|
||
|
><P CLASS="j"
|
||
|
>The rubout or delete character.</P
|
||
|
></DD
|
||
|
><DT
|
||
|
><CODE CLASS="f"
|
||
|
>Page</CODE
|
||
|
></DT
|
||
|
><DD
|
||
|
><P CLASS="j"
|
||
|
>The form-feed or page-separator character.</P
|
||
|
></DD
|
||
|
><DT
|
||
|
><CODE CLASS="f"
|
||
|
>Tab</CODE
|
||
|
></DT
|
||
|
><DD
|
||
|
><P CLASS="j"
|
||
|
>The tabulate character.</P
|
||
|
></DD
|
||
|
><DT
|
||
|
><CODE CLASS="f"
|
||
|
>Backspace</CODE
|
||
|
></DT
|
||
|
><DD
|
||
|
><P CLASS="j"
|
||
|
>The backspace character.</P
|
||
|
></DD
|
||
|
><DT
|
||
|
><CODE CLASS="f"
|
||
|
>Return</CODE
|
||
|
></DT
|
||
|
><DD
|
||
|
><P CLASS="j"
|
||
|
>The carriage return character.</P
|
||
|
></DD
|
||
|
><DT
|
||
|
><CODE CLASS="f"
|
||
|
>Linefeed</CODE
|
||
|
></DT
|
||
|
><DD
|
||
|
><P CLASS="j"
|
||
|
>The line-feed character.</P
|
||
|
></DD
|
||
|
></DL
|
||
|
><P CLASS="j"
|
||
|
>In some <A HREF="26_1_Glossary.html#implementation"
|
||
|
><EM CLASS="term"
|
||
|
>implementations</EM
|
||
|
></A
|
||
|
>, one or more of these <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#name"
|
||
|
><EM CLASS="term"
|
||
|
>names</EM
|
||
|
></A
|
||
|
> might denote a <A HREF="26_1_Glossary.html#standard_character"
|
||
|
><EM CLASS="term"
|
||
|
>standard character</EM
|
||
|
></A
|
||
|
>; for example, <CODE CLASS="f"
|
||
|
>#\Linefeed</CODE
|
||
|
> and <CODE CLASS="f"
|
||
|
>#\Newline</CODE
|
||
|
> might be the <A HREF="26_1_Glossary.html#same"
|
||
|
><EM CLASS="term"
|
||
|
>same</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> in some <A HREF="26_1_Glossary.html#implementation"
|
||
|
><EM CLASS="term"
|
||
|
>implementations</EM
|
||
|
></A
|
||
|
>.</P
|
||
|
><H3 ID="sec_13_1_8" CLASS="HeadIII"
|
||
|
>13.1.8 Treatment of Newline during Input and Output</H3
|
||
|
><P CLASS="j"
|
||
|
>When the character <CODE CLASS="f"
|
||
|
>#\Newline</CODE
|
||
|
> is written to an output file, the implementation must take the appropriate action to produce a line division. This might involve writing out a record or translating <CODE CLASS="f"
|
||
|
>#\Newline</CODE
|
||
|
> to a CR/LF sequence. When reading, a corresponding reverse transformation must take place.</P
|
||
|
><H3 ID="sec_13_1_9" CLASS="HeadIII"
|
||
|
>13.1.9 Character Encodings</H3
|
||
|
><P CLASS="j"
|
||
|
>A <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> is sometimes represented merely by its <A HREF="26_1_Glossary.html#code"
|
||
|
><EM CLASS="term"
|
||
|
>code</EM
|
||
|
></A
|
||
|
>, and sometimes by another <A HREF="26_1_Glossary.html#integer"
|
||
|
><EM CLASS="term"
|
||
|
>integer</EM
|
||
|
></A
|
||
|
> value which is composed from the <A HREF="26_1_Glossary.html#code"
|
||
|
><EM CLASS="term"
|
||
|
>code</EM
|
||
|
></A
|
||
|
> and all <A HREF="26_1_Glossary.html#implementation-defined"
|
||
|
><EM CLASS="term"
|
||
|
>implementation-defined</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#attribute"
|
||
|
><EM CLASS="term"
|
||
|
>attributes</EM
|
||
|
></A
|
||
|
> (in an <A HREF="26_1_Glossary.html#implementation-defined"
|
||
|
><EM CLASS="term"
|
||
|
>implementation-defined</EM
|
||
|
></A
|
||
|
> way that might vary between <A HREF="26_1_Glossary.html#Lisp_image"
|
||
|
><EM CLASS="term"
|
||
|
>Lisp images</EM
|
||
|
></A
|
||
|
> even in the same <A HREF="26_1_Glossary.html#implementation"
|
||
|
><EM CLASS="term"
|
||
|
>implementation</EM
|
||
|
></A
|
||
|
>). This <A HREF="26_1_Glossary.html#integer"
|
||
|
><EM CLASS="term"
|
||
|
>integer</EM
|
||
|
></A
|
||
|
>, returned by the function <A HREF="f_char-int.html" CLASS="funref"
|
||
|
><B
|
||
|
>char-int</B
|
||
|
></A
|
||
|
>, is called the character’s “encoding.” There is no corresponding function from a character’s encoding back to the <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
>, since its primary intended uses include things like hashing where an inverse operation is not really called for.</P
|
||
|
><H3 ID="sec_13_1_10" CLASS="HeadIII"
|
||
|
>13.1.10 Documentation of Implementation-Defined Scripts</H3
|
||
|
><P CLASS="j"
|
||
|
>An <A HREF="26_1_Glossary.html#implementation"
|
||
|
><EM CLASS="term"
|
||
|
>implementation</EM
|
||
|
></A
|
||
|
> must document the <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#script"
|
||
|
><EM CLASS="term"
|
||
|
>scripts</EM
|
||
|
></A
|
||
|
> it supports. For each <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#script"
|
||
|
><EM CLASS="term"
|
||
|
>script</EM
|
||
|
></A
|
||
|
> supported, the documentation must describe at least the following:</P
|
||
|
><UL
|
||
|
><LI
|
||
|
><P CLASS="j"
|
||
|
>Character labels, glyphs, and descriptions. Character labels must be uniquely named using only Latin capital letters A–Z, hyphen (-), and digits 0–9.</P
|
||
|
></LI
|
||
|
><LI
|
||
|
><P CLASS="j"
|
||
|
>Reader canonicalization. Any mechanisms by which <A HREF="f_read.html" CLASS="funref"
|
||
|
><B
|
||
|
>read</B
|
||
|
></A
|
||
|
> treats <A HREF="26_1_Glossary.html#different"
|
||
|
><EM CLASS="term"
|
||
|
>different</EM
|
||
|
></A
|
||
|
> characters as equivalent must be documented.</P
|
||
|
></LI
|
||
|
><LI
|
||
|
><P CLASS="j"
|
||
|
>The impact on <A HREF="f_char-upcase.html" CLASS="funref"
|
||
|
><B
|
||
|
>char-upcase</B
|
||
|
></A
|
||
|
>, <A HREF="f_char-upcase.html" CLASS="funref"
|
||
|
><B
|
||
|
>char-downcase</B
|
||
|
></A
|
||
|
>, and the case-sensitive <A HREF="26_1_Glossary.html#format_directive"
|
||
|
><EM CLASS="term"
|
||
|
>format directives</EM
|
||
|
></A
|
||
|
>. In particular, for each <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> with <A HREF="26_1_Glossary.html#case"
|
||
|
><EM CLASS="term"
|
||
|
>case</EM
|
||
|
></A
|
||
|
>, whether it is <A HREF="26_1_Glossary.html#uppercase"
|
||
|
><EM CLASS="term"
|
||
|
>uppercase</EM
|
||
|
></A
|
||
|
> or <A HREF="26_1_Glossary.html#lowercase"
|
||
|
><EM CLASS="term"
|
||
|
>lowercase</EM
|
||
|
></A
|
||
|
>, and which <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> is its equivalent in the opposite case.</P
|
||
|
></LI
|
||
|
><LI
|
||
|
><P CLASS="j"
|
||
|
>The behavior of the case-insensitive <A HREF="26_1_Glossary.html#function"
|
||
|
><EM CLASS="term"
|
||
|
>functions</EM
|
||
|
></A
|
||
|
> <A HREF="f_char_eq.html" CLASS="funref"
|
||
|
><B
|
||
|
>char-equal</B
|
||
|
></A
|
||
|
>, <A HREF="f_char_eq.html" CLASS="funref"
|
||
|
><B
|
||
|
>char-not-equal</B
|
||
|
></A
|
||
|
>, <A HREF="f_char_eq.html" CLASS="funref"
|
||
|
><B
|
||
|
>char-lessp</B
|
||
|
></A
|
||
|
>, <A HREF="f_char_eq.html" CLASS="funref"
|
||
|
><B
|
||
|
>char-greaterp</B
|
||
|
></A
|
||
|
>, <A HREF="f_char_eq.html" CLASS="funref"
|
||
|
><B
|
||
|
>char-not-greaterp</B
|
||
|
></A
|
||
|
>, and <A HREF="f_char_eq.html" CLASS="funref"
|
||
|
><B
|
||
|
>char-not-lessp</B
|
||
|
></A
|
||
|
>.</P
|
||
|
></LI
|
||
|
><LI
|
||
|
><P CLASS="j"
|
||
|
>The behavior of any <A HREF="26_1_Glossary.html#character"
|
||
|
><EM CLASS="term"
|
||
|
>character</EM
|
||
|
></A
|
||
|
> <A HREF="26_1_Glossary.html#predicate"
|
||
|
><EM CLASS="term"
|
||
|
>predicates</EM
|
||
|
></A
|
||
|
>; in particular, the effects of <A HREF="f_alpha-char-p.html" CLASS="funref"
|
||
|
><B
|
||
|
>alpha-char-p</B
|
||
|
></A
|
||
|
>, <A HREF="f_upper-case-p.html" CLASS="funref"
|
||
|
><B
|
||
|
>lower-case-p</B
|
||
|
></A
|
||
|
>, <A HREF="f_upper-case-p.html" CLASS="funref"
|
||
|
><B
|
||
|
>upper-case-p</B
|
||
|
></A
|
||
|
>, <A HREF="f_upper-case-p.html" CLASS="funref"
|
||
|
><B
|
||
|
>both-case-p</B
|
||
|
></A
|
||
|
>, <A HREF="f_graphic-char-p.html" CLASS="funref"
|
||
|
><B
|
||
|
>graphic-char-p</B
|
||
|
></A
|
||
|
>, and <A HREF="f_alphanumericp.html" CLASS="funref"
|
||
|
><B
|
||
|
>alphanumericp</B
|
||
|
></A
|
||
|
>.</P
|
||
|
></LI
|
||
|
><LI
|
||
|
><P CLASS="j"
|
||
|
>The interaction with file I/O, in particular, the supported coded character sets (for example, ISO8859/1-1987) and external encoding schemes supported are documented.</P
|
||
|
></LI
|
||
|
></UL
|
||
|
></SECTION
|
||
|
></DIV
|
||
|
><DIV CLASS="footer"
|
||
|
><DIV CLASS="btmnav"
|
||
|
><A HREF="13_Characters.html" CLASS="prev"
|
||
|
>←</A
|
||
|
><A HREF="13_2_Characters_Dictionary.html" CLASS="next"
|
||
|
>→</A
|
||
|
></DIV
|
||
|
><DIV CLASS="trail"
|
||
|
>Conversion to HTML copyright 2023 by Gilbert Baumann</DIV
|
||
|
></DIV
|
||
|
></DIV
|
||
|
><SCRIPT
|
||
|
>domReady();</SCRIPT
|
||
|
></BODY
|
||
|
></HTML
|
||
|
>
|