Skip to main content

Contents and Figures

draft proposed American National Standard for Information Systems—Programming

Language—Common Lisp

X3J13/94-101R

Versions 15.17 (X3J13/94-101) and 15.17R (X3J13/94-101R) are absolutely identical except for changes to the document number and date on the cover and in each page’s header, addition of this disclaimer on the back of the cover page, additions to the Edit and Review History on page Credits iv, and changes to the names and headings in the credits section on pages Credits v-vii. There are NO technical changes between these versions; from a normative point of view, the

documents X3J13/94-101 and X3J13/94-101R are entirely interchangeable.

Figures

Chapter 1 (Introduction)

TopicPage(s)
1–1. Notations for NIL1–14
1–2. Deprecated Functions1–33
1–3. Functions with Deprecated :TEST-NOT Arguments1–33
1–4. Symbols in the COMMON-LISP package (part one of twelve).1–35
1–5. Symbols in the COMMON-LISP package (part two of twelve).1–36
1–6. Symbols in the COMMON-LISP package (part three of twelve).1–37
1–7. Symbols in the COMMON-LISP package (part four of twelve).1–38
1–8. Symbols in the COMMON-LISP package (part five of twelve).1–39
1–9. Symbols in the COMMON-LISP package (part six of twelve).1–40
1–10. Symbols in the COMMON-LISP package (part seven of twelve).1–41
1–11. Symbols in the COMMON-LISP package (part eight of twelve).1–42
1–12. Symbols in the COMMON-LISP package (part nine of twelve).1–43
1–13. Symbols in the COMMON-LISP package (part ten of twelve).1–44
1–14. Symbols in the COMMON-LISP package (part eleven of twelve).1–45
1–15. Symbols in the COMMON-LISP package (part twelve of twelve).1–46

Chapter 2 (Syntax)

TopicPage(s)
2–1. Readtable defined names2–1
2–2. Variables that influence the Lisp reader.2–2
2–3. Standard Character Subrepertoire (Part 1 of 3: Latin Characters)2–3
2–4. Standard Character Subrepertoire (Part 2 of 3: Numeric Characters)2–3
2–5. Standard Character Subrepertoire (Part 3 of 3: Special Characters)2–4
2–6. Possible Character Syntax Types2–5
2–7. Character Syntax Types in Standard Syntax2–5
2–8. Constituent Traits of Standard Characters and Semi-Standard Characters2–7
2–9. Syntax for Numeric Tokens2–14
2–10. Examples of reserved tokens2–15
2–11. Examples of symbols2–15
2–12. Examples of symbols or potential numbers2–16
2–13. Examples of Ratios2–17
2–14. Examples of Floating-point numbers2–18
2–15. Examples of the printed representation of symbols (Part 1 of 2)2–19
2–16. Examples of the printed representation of symbols (Part 2 of 2)2–20
2–17. Valid patterns for tokens2–21
2–18. Examples of the use of double-quote2–26
2–19. Standard # Dispatching Macro Character Syntax2–30
2–20. Radix Indicator Example2–34
2–21. Complex Number Example2–35

Chapter 3 (Evaluation and Compilation)

TopicPage(s)
3–1. Some Defined Names Applicable to Variables3–4
3–2. Common Lisp Special Operators3–6
3–3. Defined names applicable to macros3–7
3–4. Some function-related defined names3–8
3–5. Some operators applicable to receiving multiple values3–13
3–6. Defined names applicable to compiler macros3–16
3–7. EVAL-WHEN processing3–21
3–8. Defining Macros That Affect the Compile-Time Environment3–22
3–9. Common Lisp Declaration Identifiers3–29
3–10. What Kind of Lambda Lists to Use3–33
3–11. Defined names applicable to lambda lists3–33
3–12. Standardized Operators that use Ordinary Lambda Lists3–34
3–13. Lambda List Keywords used by Ordinary Lambda Lists3–34
3–14. Lambda List Keywords used by Generic Function Lambda Lists3–39
3–15. Standardized Operators that use Specialized Lambda Lists3–40
3–16. Lambda List Keywords used by Specialized Lambda Lists3–40
3–17. Operators that use Macro Lambda Lists3–41
3–18. Lambda List Keywords used by Macro Lambda Lists3–41
3–19. Lambda List Keywords used by Defsetf Lambda Lists3–47
3–20. Lambda List Keywords used by Define-modify-macro Lambda Lists3–48
3–21. Lambda List Keywords used by Define-method-combination arguments Lambda Lists 3–48
3–22. Global Declaration Specifiers3–81
3–23. Standardized Forms In Which Declarations Can Occur3–83
3–24. Local Declaration Specifiers3–83
3–25. Optimize qualities3–96

Chapter 4 (Types and Classes)

TopicPage(s)
4–1. Cross-References to Data Type Information4–2
4–2. Standardized Atomic Type Specifiers4–4
4–3. Standardized Compound Type Specifier Names4–5
4–4. Standardized Compound-Only Type Specifier Names4–5
4–5. Defined names relating to types and declarations.4–6
4–6. Standardized Type Specifier Names4–7
4–7. Object System Classes4–8
4–8. Classes that correspond to pre-defined type specifiers4–18
4–9. Result possibilities for subtypep4–35

Chapter 5 (Data and Control Flow)

TopicPage(s)
5–1. Examples of setf5–1
5–2. Operators relating to places and generalized reference.5–1
5–3. Sample Setf Expansion of a Variable5–4
5–4. Sample Setf Expansion of a CAR Form5–4
5–5. Sample Setf Expansion of a SUBSEQ Form5–4
5–6. Sample Setf Expansion of a LDB Form5–5
5–7. Functions that setf can be used with—15–6
5–8. Functions that setf can be used with—25–7
5–9. Read-Modify-Write Macros5–12
5–10. Macros that have implicit tagbodies.5–49
5–11. Operators that always prefer EQ over EQL5–58
5–12. Summary and priorities of behavior of equal5–61
5–13. Summary and priorities of behavior of equalp5–63

Chapter 6 (Iteration)

TopicPage(s)

Chapter 7 (Objects)

TopicPage(s)
7–1. Standardized Method-Defining Operators7–17
7–2. Built-in Method Combination Types7–25

Chapter 8 (Structures)

TopicPage(s)

Chapter 9 (Conditions)

TopicPage(s)
9–1. Standardized Condition Types9–2
9–2. Operators that define and create conditions.9–2
9–3. Operators that read condition slots.9–3
9–4. Operators relating to handling conditions.9–7
9–5. Defined names relating to signaling conditions.9–7
9–6. Defined names relating to restarts.9–9
9–7. Operators relating to assertions.9–10

Chapter 10 (Symbols)

TopicPage(s)
10–1. Property list defined names10–1
10–2. Symbol creation and inquiry defined names10–1

Chapter 11 (Packages)

TopicPage(s)
11–1. Some Defined Names related to Packages11–1
11–2. Standardized Package Names11–4

Chapter 12 (Numbers)

TopicPage(s)
12–1. Operators relating to Arithmetic.12–1
12–2. Defined names relating to Exponentials, Logarithms, and Trigonometry.12–1
12–3. Operators for numeric comparison and predication.12–1
12–4. Defined names relating to numeric type manipulation and coercion.12–2
12–5. Defined names relating to logical operations on numbers.12–3
12–6. Defined names relating to byte manipulation.12–4
12–7. Defined names relating to implementation-dependent details about numbers.12–4
12–8. Functions Affected by Rule of Float Substitutability12–6
12–9. Trigonometric Identities for Complex Domain12–9
12–10. Quadrant Numbering for Branch Cuts12–9
12–11. Random-state defined names12–10
12–12. Recommended Minimum Floating-Point Precision and Exponent Size12–14
12–13. Uses of /=, =, <, >, <=, and >=12–22
12–14. Mathematical definition of arc sine, arc cosine, and arc tangent12–29
12–15. Quadrant information for arc tangent12–31
12–16. Mathematical definitions for hyperbolic functions12–33
12–17. Bit-Wise Logical Operations12–68
12–18. Bit-wise Logical Operations on Integers12–72

Chapter 13 (Characters)

TopicPage(s)
13–1. Character defined names – 113–1
13–2. Character defined names – 213–1

Chapter 14 (Conses)

TopicPage(s)
14–1. Some defined names relating to conses.14–1
14–2. Some defined names relating to trees.14–1
14–3. Some defined names relating to lists.14–2
14–4. Some defined names related to assocation lists.14–2
14–5. Some defined names related to sets.14–3
14–6. CAR and CDR variants14–11

Chapter 15 (Arrays)

TopicPage(s)
15–1. General Purpose Array-Related Defined Names15–2
15–2. Operators that Manipulate Strings15–3
15–3. Operators that Manipulate Bit Arrays15–4
15–4. Bit-wise Logical Operations on Bit Arrays15–38

Chapter 16 (Strings)

TopicPage(s)

Chapter 17 (Sequences)

TopicPage(s)
17–1. Standardized Sequence Functions17–1
17–2. Operators that have Two-Argument Tests to be Satisfied17–2
17–3. Operators that have One-Argument Tests to be Satisfied17–3

Chapter 18 (Hash Tables)

TopicPage(s)
18–1. Hash-table defined names18–1

Chapter 19 (Filenames)

TopicPage(s)
19–1. Pathname Operations19–2
19–2. Pathname functions using a :CASE argument19–4
19–3. Special Markers In Directory Component19–8

Chapter 20 (Files)

TopicPage(s)
20–1. File and Directory Operations20–1
20–2. File Functions that Treat Open and Closed Streams Differently20–1
20–3. File Functions where Closed Streams Might Work Best20–2

Chapter 21 (Streams)

TopicPage(s)
21–1. Some General-Purpose Stream Operations21–1
21–2. Operators relating to Input Streams.21–1
21–3. Operators relating to Output Streams.21–2
21–4. Operators relating to Bidirectional Streams.21–2
21–5. Defined Names related to Specialized Streams21–4
21–6. Standardized Stream Variables21–4
21–7. Operators that accept either Open or Closed Streams21–5
21–8. Operators that accept Open Streams only21–5

Chapter 22 (Printer)

TopicPage(s)
22–1. Standardized Printer Control Variables22–1
22–2. Additional Influences on the Lisp printer.22–2
22–3. Example of Logical Blocks, Conditional Newlines, and Sections22–15
22–4. Defined names related to pretty printing.22–15
22–5. Format directives related to Pretty Printing22–15
22–6. Examples of format control strings22–23
22–7. Argument correspondences for the WRITE function.22–63

Chapter 23 (Reader)

TopicPage(s)
23–1. Values of standard control variables23–18

Chapter 24 (System Construction)

TopicPage(s)
24–1. Features examples24–2

Chapter 25 (Environment)

TopicPage(s)
25–1. Variables maintained by the Read-Eval-Print Loop25–1
25–2. Defined names relating to debugging25–1
25–3. Defined names relating to environment inquiry.25–2
25–4. Defined names involving Time.25–2
25–5. Defined names involving time in Decoded Time.25–3
25–6. Defined names involving time in Universal Time.25–4
25–7. Defined names involving time in Internal Time.25–4
25–8. Defined names involving time in Seconds.25–4

Chapter 26 (Glossary)

TopicPage(s)
26–1. Exponent Markers26–22
26–2. Standardized I/O Customization Variables26–30
26–3. Standardized Iteration Forms26–33
26–4. Standardized Restart Functions26–48

Chapter A (Appendix)

Contents

Chapter 1 (Introduction)

TopicPage(s)
1.1 Scope, Purpose, and History1–1
1.1.1 Scope and Purpose1–1
1.1.2 History1–1
1.2 Organization of the Document1–4
1.3 Referenced Publications1–5
1.4 Definitions1–7
1.4.1 Notational Conventions1–7
1.4.1.1 Font Key1–7
1.4.1.2 Modified BNF Syntax1–7
1.4.1.2.1 Splicing in Modified BNF Syntax1–8
1.4.1.2.2 Indirection in Modified BNF Syntax1–9
1.4.1.2.3 Additional Uses for Indirect Definitions in Modified BNF Syntax1–9
1.4.1.3 Special Symbols1–10
1.4.1.4 Objects with Multiple Notations1–12
1.4.1.4.1 Case in Symbols1–12
1.4.1.4.2 Numbers1–13
1.4.1.4.3 Use of the Dot Character1–13
1.4.1.4.4 NIL1–13
1.4.1.5 Designators1–14
1.4.1.6 Nonsense Words1–15
1.4.2 Error Terminology1–15
1.4.3 Sections Not Formally Part Of This Standard1–18
1.4.4 Interpreting Dictionary Entries1–19
1.4.4.1 The “Affected By” Section of a Dictionary Entry1–19
1.4.4.2 The “Arguments” Section of a Dictionary Entry1–19
1.4.4.3 The “Arguments and Values” Section of a Dictionary Entry1–19
1.4.4.4 The “Binding Types Affected” Section of a Dictionary Entry1–19
1.4.4.5 The “Class Precedence List” Section of a Dictionary Entry1–19
1.4.4.6 Dictionary Entries for Type Specifiers1–20
1.4.4.6.1 The “Compound Type Specifier Kind” Section of a Dictionary Entry1–20
1.4.4.6.2 The “Compound Type Specifier Syntax” Section of a Dictionary Entry1–20
1.4.4.6.3 The “Compound Type Specifier Arguments” Section of a Dictionary Entry1–21
1.4.4.6.4 The “Compound Type Specifier Description” Section of a Dictionary Entry1–21
1.4.4.7 The “Constant Value” Section of a Dictionary Entry1–21
1.4.4.8 The “Description” Section of a Dictionary Entry1–21
1.4.4.9 The “Examples” Section of a Dictionary Entry1–21
1.4.4.10 The “Exceptional Situations” Section of a Dictionary Entry1–21
1.4.4.11 The “Initial Value” Section of a Dictionary Entry1–21
1.4.4.12 The “Argument Precedence Order” Section of a Dictionary Entry1–22
1.4.4.13 The “Method Signature” Section of a Dictionary Entry1–22
1.4.4.14 The “Name” Section of a Dictionary Entry1–22
1.4.4.15 The “Notes” Section of a Dictionary Entry1–24
1.4.4.16 The “Pronunciation” Section of a Dictionary Entry1–24
1.4.4.17 The “See Also” Section of a Dictionary Entry1–24
1.4.4.18 The “Side Effects” Section of a Dictionary Entry1–24
1.4.4.19 The “Supertypes” Section of a Dictionary Entry1–24
1.4.4.20 The “Syntax” Section of a Dictionary Entry1–24
1.4.4.20.1 Special “Syntax” Notations for Overloaded Operators1–25
1.4.4.20.2 Naming Conventions for Rest Parameters1–25
1.4.4.20.3 Requiring Non-Null Rest Parameters in the “Syntax” Section1–25
1.4.4.20.4 Return values in the “Syntax” Section1–26
1.4.4.20.4.1 No Arguments or Values in the “Syntax” Section1–26
1.4.4.20.4.2 Unconditional Transfer of Control in the “Syntax” Section1–26
1.4.4.21 The “Valid Context” Section of a Dictionary Entry1–26
1.4.4.22 The “Value Type” Section of a Dictionary Entry1–26
1.5 Conformance1–28
1.5.1 Conforming Implementations1–28
1.5.1.1 Required Language Features1–28
1.5.1.2 Documentation of Implementation-Dependent Features1–28
1.5.1.3 Documentation of Extensions1–28
1.5.1.4 Treatment of Exceptional Situations1–28
1.5.1.4.1 Resolution of Apparent Conflicts in Exceptional Situations1–28
1.5.1.4.1.1 Examples of Resolution of Apparent Conflicts in Exceptional Situations1–28
1.5.1.5 Conformance Statement1–29
1.5.2 Conforming Programs1–29
1.5.2.1 Use of Implementation-Defined Language Features1–29
1.5.2.1.1 Use of Read-Time Conditionals1–30
1.5.2.2 Character Set for Portable Code1–30
1.6 Language Extensions1–31
1.7 Language Subsets1–32
1.8 Deprecated Language Features1–33
1.8.1 Deprecated Functions1–33
1.8.2 Deprecated Argument Conventions1–33
1.8.3 Deprecated Variables1–33
1.8.4 Deprecated Reader Syntax1–34
1.9 Symbols in the COMMON-LISP Package1–35

Chapter 2 (Syntax)

TopicPage(s)
2.1 Character Syntax2–1
2.1.1 Readtables2–1
2.1.1.1 The Current Readtable2–1
2.1.1.2 The Standard Readtable2–1
2.1.1.3 The Initial Readtable2–1
2.1.2 Variables that affect the Lisp Reader2–2
2.1.3 Standard Characters2–2
2.1.4 Character Syntax Types2–4
2.1.4.1 Constituent Characters2–6
2.1.4.2 Constituent Traits2–6
2.1.4.3 Invalid Characters2–8
2.1.4.4 Macro Characters2–8
2.1.4.5 Multiple Escape Characters2–8
2.1.4.5.1Examples of Multiple Escape Characters2–9
2.1.4.6Single Escape Character2–9
2.1.4.6.1Examples of Single Escape Characters2–9
2.1.4.7Whitespace Characters2–9
2.1.4.7.1Examples of Whitespace Characters2–9
2.2 Reader Algorithm2–11
2.3 Interpretation of Tokens2–14
2.3.1 Numbers as Tokens2–14
2.3.1.1 Potential Numbers as Tokens2–14
2.3.1.1.1 Escape Characters and Potential Numbers2–15
2.3.1.1.2 Examples of Potential Numbers2–15
2.3.2 Constructing Numbers from Tokens2–16
2.3.2.1 Syntax of a Rational2–16
2.3.2.1.1 Syntax of an Integer2–16
2.3.2.1.2 Syntax of a Ratio2–16
2.3.2.2 Syntax of a Float2–17
2.3.2.3 Syntax of a Complex2–18
2.3.3 The Consing Dot2–18
2.3.4 Symbols as Tokens2–18
2.3.5 Valid Patterns for Tokens2–20
2.3.6 Package System Consistency Rules2–22
2.4 Standard Macro Characters2–23
2.4.1 Left-Parenthesis2–23
2.4.2 Right-Parenthesis2–23
2.4.3 Single-Quote2–23
2.4.3.1 Examples of Single-Quote2–24
2.4.4 Semicolon2–24
2.4.4.1 Examples of Semicolon2–24
2.4.4.2 Notes about Style for Semicolon2–24
2.4.4.2.1 Use of Single Semicolon2–24
2.4.4.2.2 Use of Double Semicolon2–24
2.4.4.2.3 Use of Triple Semicolon2–25
2.4.4.2.4 Use of Quadruple Semicolon2–25
2.4.4.2.5 Examples of Style for Semicolon2–25
2.4.5 Double-Quote2–25
2.4.6 Backquote2–26
2.4.6.1 Notes about Backquote2–28
2.4.7 Comma2–28
2.4.8 Sharpsign2–28
2.4.8.1Sharpsign Backslash2–31
2.4.8.2Sharpsign Single-Quote2–31
2.4.8.3Sharpsign Left-Parenthesis2–31
2.4.8.4 Sharpsign Asterisk2–32
2.4.8.4.1 Examples of Sharpsign Asterisk2–32
2.4.8.5 Sharpsign Colon2–32
2.4.8.6 Sharpsign Dot2–33
2.4.8.7 Sharpsign B2–33
2.4.8.8 Sharpsign O2–33
2.4.8.9 Sharpsign X2–33
2.4.8.10 Sharpsign R2–34
2.4.8.11 Sharpsign C2–34
2.4.8.12 Sharpsign A2–35
2.4.8.13 Sharpsign S2–35
2.4.8.14Sharpsign P2–36
2.4.8.15Sharpsign Equal-Sign2–36
2.4.8.16Sharpsign Sharpsign2–36
2.4.8.17 Sharpsign Plus2–37
2.4.8.18 Sharpsign Minus2–37
2.4.8.19 Sharpsign Vertical-Bar2–37
2.4.8.19.1Examples of Sharpsign Vertical-Bar2–38
2.4.8.19.2 Notes about Style for Sharpsign Vertical-Bar2–39
2.4.8.20 Sharpsign Less-Than-Sign2–39
2.4.8.21 Sharpsign Whitespace2–39
2.4.8.22 Sharpsign Right-Parenthesis2–39
2.4.9 Re-Reading Abbreviated Expressions2–40

Chapter 3 (Evaluation and Compilation)

TopicPage(s)
3.1 Evaluation3–1
3.1.1 Introduction to Environments3–1
3.1.1.1 The Global Environment3–1
3.1.1.2 Dynamic Environments3–1
3.1.1.3 Lexical Environments3–2
3.1.1.3.1 The Null Lexical Environment3–2
3.1.1.4 Environment Objects3–3
3.1.2 The Evaluation Model3–3
3.1.2.1 Form Evaluation3–3
3.1.2.1.1 Symbols as Forms3–3
3.1.2.1.1.1 Lexical Variables3–4
3.1.2.1.1.2 Dynamic Variables3–4
3.1.2.1.1.3 Constant Variables3–5
3.1.2.1.1.4 Symbols Naming Both Lexical and Dynamic Variables3–5
3.1.2.1.2 Conses as Forms3–5
3.1.2.1.2.1 Special Forms3–6
3.1.2.1.2.2 Macro Forms3–6
3.1.2.1.2.3 Function Forms3–7
3.1.2.1.2.4Lambda Forms3–8
3.1.2.1.3Self-Evaluating Objects3–8
3.1.2.1.3.1Examples of Self-Evaluating Objects3–8
3.1.3 Lambda Expressions3–9
3.1.4 Closures and Lexical Binding3–9
3.1.5 Shadowing3–11
3.1.6 Extent3–12
3.1.7 Return Values3–13
3.2 Compilation3–14
3.2.1 Compiler Terminology3–14
3.2.2 Compilation Semantics3–15
3.2.2.1 Compiler Macros3–15
3.2.2.1.1 Purpose of Compiler Macros3–16
3.2.2.1.2 Naming of Compiler Macros3–16
3.2.2.1.3 When Compiler Macros Are Used3–17
3.2.2.1.3.1 Notes about the Implementation of Compiler Macros3–17
3.2.2.2 Minimal Compilation3–17
3.2.2.3 Semantic Constraints3–18
3.2.3 File Compilation3–19
3.2.3.1 Processing of Top Level Forms3–20
3.2.3.1.1 Processing of Defining Macros3–22
3.2.3.1.2 Constraints on Macros and Compiler Macros3–22
3.2.4 Literal Objects in Compiled Files3–23
3.2.4.1 Externalizable Objects3–23
3.2.4.2 Similarity of Literal Objects3–24
3.2.4.2.1 Similarity of Aggregate Objects3–24
3.2.4.2.2 Definition of Similarity3–24
3.2.4.3 Extensions to Similarity Rules3–26
3.2.4.4 Additional Constraints on Externalizable Objects3–26
3.2.5 Exceptional Situations in the Compiler3–27
3.3 Declarations3–29
3.3.1 Minimal Declaration Processing Requirements3–29
3.3.2 Declaration Specifiers3–29
3.3.3 Declaration Identifiers3–29
3.3.3.1 Shorthand notation for Type Declarations3–30
3.3.4 Declaration Scope3–30
3.3.4.1 Examples of Declaration Scope3–30
3.4 Lambda Lists3–33
3.4.1 Ordinary Lambda Lists3–33
3.4.1.1 Specifiers for the required parameters3–34
3.4.1.2 Specifiers for optional parameters3–35
3.4.1.3 A specifier for a rest parameter3–35
3.4.1.4 Specifiers for keyword parameters3–35
3.4.1.4.1 Suppressing Keyword Argument Checking3–36
3.4.1.4.1.1Examples of Suppressing Keyword Argument Checking3–37
3.4.1.5Specifiers for &aux variables3–37
3.4.1.6Examples of Ordinary Lambda Lists3–37
3.4.2 Generic Function Lambda Lists3–39
3.4.3 Specialized Lambda Lists3–40
3.4.4 Macro Lambda Lists3–41
3.4.4.1 Destructuring by Lambda Lists3–42
3.4.4.1.1 Data-directed Destructuring by Lambda Lists3–43
3.4.4.1.1.1 Examples of Data-directed Destructuring by Lambda Lists3–43
3.4.4.1.2 Lambda-list-directed Destructuring by Lambda Lists3–43
3.4.5 Destructuring Lambda Lists3–45
3.4.6 Boa Lambda Lists3–45
3.4.7 Defsetf Lambda Lists3–47
3.4.8 Deftype Lambda Lists3–47
3.4.9 Define-modify-macro Lambda Lists3–47
3.4.10 Define-method-combination Arguments Lambda Lists3–48
3.4.11 Syntactic Interaction of Documentation Strings and Declarations3–48
3.5 Error Checking in Function Calls3–49
3.5.1 Argument Mismatch Detection3–49
3.5.1.1 Safe and Unsafe Calls3–49
3.5.1.1.1 Error Detection Time in Safe Calls3–50
3.5.1.2 Too Few Arguments3–50
3.5.1.3 Too Many Arguments3–50
3.5.1.4 Unrecognized Keyword Arguments3–50
3.5.1.5 Invalid Keyword Arguments3–50
3.5.1.6 Odd Number of Keyword Arguments3–51
3.5.1.7 Destructuring Mismatch3–51
3.5.1.8 Errors When Calling a Next Method3–51
3.6 Traversal Rules and Side Effects3–52
3.7 Destructive Operations3–53
3.7.1 Modification of Literal Objects3–53
3.7.2 Transfer of Control during a Destructive Operation3–54
3.7.2.1 Examples of Transfer of Control during a Destructive Operation3–54
3.8 Evaluation and Compilation Dictionary3–55

Chapter 4 (Types and Classes)

TopicPage(s)
4.1 Introduction4–1
4.2 Types4–2
4.2.1 Data Type Definition4–2
4.2.2 Type Relationships4–2
4.2.3 Type Specifiers4–3
4.3 Classes4–8
4.3.1 Introduction to Classes4–8
4.3.1.1 Standard Metaclasses4–9
4.3.2 Defining Classes4–9
4.3.3 Creating Instances of Classes4–10
4.3.4 Inheritance4–11
4.3.4.1 Examples of Inheritance4–11
4.3.4.2 Inheritance of Class Options4–11
4.3.5 Determining the Class Precedence List4–11
4.3.5.1 Topological Sorting4–12
4.3.5.2 Examples of Class Precedence List Determination4–13
4.3.6 Redefining Classes4–14
4.3.6.1 Modifying the Structure of Instances4–15
4.3.6.2 Initializing Newly Added Local Slots4–15
4.3.6.3 Customizing Class Redefinition4–16
4.3.7 Integrating Types and Classes4–16
4.4 Types and Classes Dictionary4–19

Chapter 5 (Data and Control Flow)

TopicPage(s)
5.1 Generalized Reference5–1
5.1.1 Overview of Places and Generalized Reference5–1
5.1.1.1 Evaluation of Subforms to Places5–1
5.1.1.1.1Examples of Evaluation of Subforms to Places5–2
5.1.1.2 Setf Expansions5–3
5.1.1.2.1 Examples of Setf Expansions5–4
5.1.2 Kinds of Places5–5
5.1.2.1 Variable Names as Places5–5
5.1.2.2 Function Call Forms as Places5–5
5.1.2.3 VALUES Forms as Places5–9
5.1.2.4 THE Forms as Places5–9
5.1.2.5 APPLY Forms as Places5–9
5.1.2.6 Setf Expansions and Places5–10
5.1.2.7 Macro Forms as Places5–10
5.1.2.8 Symbol Macros as Places5–10
5.1.2.9 Other Compound Forms as Places5–10
5.1.3 Treatment of Other Macros Based on SETF5–11
5.2 Transfer of Control to an Exit Point5–13
5.3 Data and Control Flow Dictionary5–14

Chapter 6 (Iteration)

TopicPage(s)
6.1The LOOP Facility6–1
6.1.1Overview of the Loop Facility6–1
6.1.1.1Simple vs Extended Loop6–1
6.1.1.1.1Simple Loop6–1
6.1.1.1.2Extended Loop6–1
6.1.1.2Loop Keywords6–1
6.1.1.3Parsing Loop Clauses6–1
6.1.1.4 Expanding Loop Forms6–2
6.1.1.5 Summary of Loop Clauses6–3
6.1.1.5.1 Summary of Variable Initialization and Stepping Clauses6–3
6.1.1.5.2 Summary of Value Accumulation Clauses6–3
6.1.1.5.3 Summary of Termination Test Clauses6–4
6.1.1.5.4 Summary of Unconditional Execution Clauses6–4
6.1.1.5.5 Summary of Conditional Execution Clauses6–5
6.1.1.5.6 Summary of Miscellaneous Clauses6–5
6.1.1.6 Order of Execution6–5
6.1.1.7 Destructuring6–6
6.1.1.8 Restrictions on Side-Effects6–8
6.1.2 Variable Initialization and Stepping Clauses6–8
6.1.2.1 Iteration Control6–8
6.1.2.1.1 The for-as-arithmetic subclause6–9
6.1.2.1.1.1Examples of for-as-arithmetic subclause6–10
6.1.2.1.2The for-as-in-list subclause6–11
6.1.2.1.2.1Examples of for-as-in-list subclause6–11
6.1.2.1.3 The for-as-on-list subclause6–12
6.1.2.1.3.1 Examples of for-as-on-list subclause6–12
6.1.2.1.4 The for-as-equals-then subclause6–12
6.1.2.1.4.1 Examples of for-as-equals-then subclause6–12
6.1.2.1.5 The for-as-across subclause6–12
6.1.2.1.5.1 Examples of for-as-across subclause6–13
6.1.2.1.6 The for-as-hash subclause6–13
6.1.2.1.7 The for-as-package subclause6–14
6.1.2.1.7.1 Examples of for-as-package subclause6–15
6.1.2.2 Local Variable Initializations6–15
6.1.2.2.1Examples of WITH clause6–16
6.1.3 Value Accumulation Clauses6–17
6.1.3.1Examples of COLLECT clause6–19
6.1.3.2Examples of APPEND and NCONC clauses6–19
6.1.3.3Examples of COUNT clause6–20
6.1.3.4Examples of MAXIMIZE and MINIMIZE clauses6–20
6.1.3.5Examples of SUM clause6–20
6.1.4 Termination Test Clauses6–21
6.1.4.1Examples of REPEAT clause6–22
6.1.4.2Examples of ALWAYS, NEVER, and THEREIS clauses6–22
6.1.4.3Examples of WHILE and UNTIL clauses6–24
6.1.5Unconditional Execution Clauses6–24
6.1.5.1Examples of unconditional execution6–24
6.1.6Conditional Execution Clauses6–25
6.1.6.1Examples of WHEN clause6–25
6.1.7 Miscellaneous Clauses6–26
6.1.7.1Control Transfer Clauses6–27
6.1.7.1.1Examples of NAMED clause6–27
6.1.7.2Initial and Final Execution6–27
6.1.8Examples of Miscellaneous Loop Features6–27
6.1.8.1Examples of clause grouping6–28
6.1.9 Notes about Loop6–30
6.2 Iteration Dictionary6–31

Chapter 7 (Objects)

TopicPage(s)
7.1 Object Creation and Initialization7–1
7.1.1 Initialization Arguments7–2
7.1.2 Declaring the Validity of Initialization Arguments7–2
7.1.3 Defaulting of Initialization Arguments7–3
7.1.4 Rules for Initialization Arguments7–4
7.1.5 Shared-Initialize7–5
7.1.6 Initialize-Instance7–6
7.1.7 Definitions of Make-Instance and Initialize-Instance7–7
7.2 Changing the Class of an Instance7–9
7.2.1 Modifying the Structure of the Instance7–9
7.2.2 Initializing Newly Added Local Slots7–9
7.2.3 Customizing the Change of Class of an Instance7–10
7.3 Reinitializing an Instance7–11
7.3.1 Customizing Reinitialization7–11
7.4 Meta-Objects7–12
7.4.1 Standard Meta-objects7–12
7.5 Slots7–13
7.5.1 Introduction to Slots7–13
7.5.2 Accessing Slots7–13
7.5.3 Inheritance of Slots and Slot Options7–14
7.6 Generic Functions and Methods7–16
7.6.1 Introduction to Generic Functions7–16
7.6.2 Introduction to Methods7–17
7.6.3 Agreement on Parameter Specializers and Qualifiers7–19
7.6.4 Congruent Lambda-lists for all Methods of a Generic Function7–19
7.6.5 Keyword Arguments in Generic Functions and Methods7–20
7.6.5.1 Examples of Keyword Arguments in Generic Functions and Methods7–20
7.6.6 Method Selection and Combination7–21
7.6.6.1 Determining the Effective Method7–21
7.6.6.1.1 Selecting the Applicable Methods7–21
7.6.6.1.2 Sorting the Applicable Methods by Precedence Order7–22
7.6.6.1.3 Applying method combination to the sorted list of applicable methods7–22
7.6.6.2 Standard Method Combination7–23
7.6.6.3 Declarative Method Combination7–24
7.6.6.4 Built-in Method Combination Types7–25
7.6.7 Inheritance of Methods7–26
7.7 Objects Dictionary7–27

Chapter 8 (Structures)

TopicPage(s)
8.1 Structures Dictionary8–1

Chapter 9 (Conditions)

TopicPage(s)
9.1 Condition System Concepts9–1
9.1.1 Condition Types9–2
9.1.1.1 Serious Conditions9–3
9.1.2 Creating Conditions9–3
9.1.2.1 Condition Designators9–3
9.1.3 Printing Conditions9–4
9.1.3.1 Recommended Style in Condition Reporting9–4
9.1.3.1.1Capitalization and Punctuation in Condition Reports9–5
9.1.3.1.2Leading and Trailing Newlines in Condition Reports9–5
9.1.3.1.3Embedded Newlines in Condition Reports9–5
9.1.3.1.4 Note about Tabs in Condition Reports9–6
9.1.3.1.5 Mentioning Containing Function in Condition Reports9–6
9.1.4 Signaling and Handling Conditions9–6
9.1.4.1 Signaling9–7
9.1.4.1.1 Resignaling a Condition9–7
9.1.4.2 Restarts9–8
9.1.4.2.1 Interactive Use of Restarts9–9
9.1.4.2.2 Interfaces to Restarts9–9
9.1.4.2.3 Restart Tests9–9
9.1.4.2.4 Associating a Restart with a Condition9–9
9.1.5 Assertions9–10
9.1.6 Notes about the Condition System’s Background9–10
9.2 Conditions Dictionary9–11

Chapter 10 (Symbols)

TopicPage(s)
10.1 Symbol Concepts10–1
10.2 Symbols Dictionary10–2

Chapter 11 (Packages)

TopicPage(s)
11.1 Package Concepts11–1
11.1.1 Introduction to Packages11–1
11.1.1.1 Package Names and Nicknames11–1
11.1.1.2 Symbols in a Package11–1
11.1.1.2.1 Internal and External Symbols11–1
11.1.1.2.2 Package Inheritance11–2
11.1.1.2.3 Accessibility of Symbols in a Package11–2
11.1.1.2.4 Locating a Symbol in a Package11–3
11.1.1.2.5 Prevention of Name Conflicts in Packages11–3
11.1.2 Standardized Packages11–4
11.1.2.1 The COMMON-LISP Package11–4
11.1.2.1.1 Constraints on the COMMON-LISP Package for Conforming Implementations11–5
11.1.2.1.2 Constraints on the COMMON-LISP Package for Conforming Programs11–5
11.1.2.1.2.1 Some Exceptions to Constraints on the COMMON-LISP Package for Conforming

Programs | 11–6 | | 11.1.2.2 The COMMON-LISP-USER Package | 11–6 | | 11.1.2.3 The KEYWORD Package | 11–7 | | 11.1.2.3.1 Interning a Symbol in the KEYWORD Package | 11–7 | | 11.1.2.3.2 Notes about The KEYWORD Package | 11–7 | | 11.1.2.4 Implementation-Defined Packages | 11–7 | | 11.2 Packages Dictionary | 11–8 |

Chapter 12 (Numbers)

TopicPage(s)
12.1 Number Concepts12–1
12.1.1 Numeric Operations12–1
12.1.1.1 Associativity and Commutativity in Numeric Operations12–2
12.1.1.1.1 Examples of Associativity and Commutativity in Numeric Operations12–2
12.1.1.2 Contagion in Numeric Operations12–3
12.1.1.3 Viewing Integers as Bits and Bytes12–3
12.1.1.3.1 Logical Operations on Integers12–3
12.1.1.3.2 Byte Operations on Integers12–3
12.1.2 Implementation-Dependent Numeric Constants12–4
12.1.3 Rational Computations12–4
12.1.3.1 Rule of Unbounded Rational Precision12–4
12.1.3.2 Rule of Canonical Representation for Rationals12–5
12.1.3.3 Rule of Float Substitutability12–5
12.1.4Floating-point Computations12–6
12.1.4.1Rule of Float and Rational Contagion12–6
12.1.4.1.1Examples of Rule of Float and Rational Contagion12–6
12.1.4.2 Rule of Float Approximation12–7
12.1.4.3 Rule of Float Underflow and Overflow12–7
12.1.4.4 Rule of Float Precision Contagion12–7
12.1.5 Complex Computations12–7
12.1.5.1 Rule of Complex Substitutability12–8
12.1.5.2 Rule of Complex Contagion12–8
12.1.5.3 Rule of Canonical Representation for Complex Rationals12–8
12.1.5.3.1 Examples of Rule of Canonical Representation for Complex Rationals12–8
12.1.5.4 Principal Values and Branch Cuts12–8
12.1.6 Interval Designators12–9
12.1.7 Random-State Operations12–10
12.2 Numbers Dictionary12–11

Chapter 13 (Characters)

TopicPage(s)
13.1 Character Concepts13–1
13.1.1 Introduction to Characters13–1
13.1.2 Introduction to Scripts and Repertoires13–1
13.1.2.1 Character Scripts13–1
13.1.2.2 Character Repertoires13–2
13.1.3 Character Attributes13–2
13.1.4 Character Categories13–2
13.1.4.1 Graphic Characters13–3
13.1.4.2 Alphabetic Characters13–3
13.1.4.3 Characters With Case13–3
13.1.4.3.1 Uppercase Characters13–3
13.1.4.3.2 Lowercase Characters13–4
13.1.4.3.3 Corresponding Characters in the Other Case13–4
13.1.4.3.4 Case of Implementation-Defined Characters13–4
13.1.4.4 Numeric Characters13–4
13.1.4.5 Alphanumeric Characters13–4
13.1.4.6 Digits in a Radix13–4
13.1.5 Identity of Characters13–5
13.1.6 Ordering of Characters13–5
13.1.7 Character Names13–5
13.1.8 Treatment of Newline during Input and Output13–6
13.1.9 Character Encodings13–7
13.1.10 Documentation of Implementation-Defined Scripts13–7
13.2 Characters Dictionary13–8

Chapter 14 (Conses)

TopicPage(s)
14.1 Cons Concepts14–1
14.1.1 Conses as Trees14–1
14.1.1.1 General Restrictions on Parameters that must be Trees14–1
14.1.2 Conses as Lists14–1
14.1.2.1 Lists as Association Lists14–2
14.1.2.2 Lists as Sets14–2
14.1.2.3 General Restrictions on Parameters that must be Lists14–3
14.2 Conses Dictionary14–4

Chapter 15 (Arrays)

TopicPage(s)
15.1 Array Concepts15–1
15.1.1 Array Elements15–1
15.1.1.1 Array Indices15–1
15.1.1.2 Array Dimensions15–1
15.1.1.2.1 Implementation Limits on Individual Array Dimensions15–1
15.1.1.3 Array Rank15–1
15.1.1.3.1 Vectors15–1
15.1.1.3.1.1 Fill Pointers15–1
15.1.1.3.2 Multidimensional Arrays15–2
15.1.1.3.2.1 Storage Layout for Multidimensional Arrays15–2
15.1.1.3.2.2 Implementation Limits on Array Rank15–2
15.1.2 Specialized Arrays15–2
15.1.2.1 Array Upgrading15–3
15.1.2.2 Required Kinds of Specialized Arrays15–3
15.2 Arrays Dictionary15–5

Chapter 16 (Strings)

TopicPage(s)
16.1 String Concepts16–1
16.1.1 Implications of Strings Being Arrays16–1
16.1.2 Subtypes of STRING16–1
16.2 Strings Dictionary16–2

Chapter 17 (Sequences)

TopicPage(s)
17.1 Sequence Concepts17–1
17.1.1 General Restrictions on Parameters that must be Sequences17–1
17.2Rules about Test Functions17–2
17.2.1Satisfying a Two-Argument Test17–2
17.2.1.1Examples of Satisfying a Two-Argument Test17–2
17.2.2 Satisfying a One-Argument Test17–3
17.2.2.1 Examples of Satisfying a One-Argument Test17–4
17.3 Sequences Dictionary17–5

Chapter 18 (Hash Tables)

TopicPage(s)
18.1 Hash Table Concepts18–1
18.1.1 Hash-Table Operations18–1
18.1.2 Modifying Hash Table Keys18–1
18.1.2.1 Visible Modification of Objects with respect to EQ and EQL18–2
18.1.2.2 Visible Modification of Objects with respect to EQUAL18–2
18.1.2.2.1 Visible Modification of Conses with respect to EQUAL18–2
18.1.2.2.2 Visible Modification of Bit Vectors and Strings with respect to EQUAL18–2
18.1.2.3 Visible Modification of Objects with respect to EQUALP18–2
18.1.2.3.1 Visible Modification of Structures with respect to EQUALP18–2
18.1.2.3.2 Visible Modification of Arrays with respect to EQUALP18–3
18.1.2.3.3 Visible Modification of Hash Tables with respect to EQUALP18–3
18.1.2.4 Visible Modifications by Language Extensions18–3
18.2 Hash Tables Dictionary18–4

Chapter 19 (Filenames)

TopicPage(s)
19.1 Overview of Filenames19–1
19.1.1 Namestrings as Filenames19–1
19.1.2 Pathnames as Filenames19–1
19.1.3 Parsing Namestrings Into Pathnames19–2
19.2 Pathnames19–3
19.2.1 Pathname Components19–3
19.2.1.1 The Pathname Host Component19–3
19.2.1.2 The Pathname Device Component19–3
19.2.1.3 The Pathname Directory Component19–3
19.2.1.4 The Pathname Name Component19–3
19.2.1.5 The Pathname Type Component19–3
19.2.1.6 The Pathname Version Component19–3
19.2.2 Interpreting Pathname Component Values19–3
19.2.2.1 Strings in Component Values19–3
19.2.2.1.1 Special Characters in Pathname Components19–4
19.2.2.1.2 Case in Pathname Components19–4
19.2.2.1.2.1 Local Case in Pathname Components19–4
19.2.2.1.2.2 Common Case in Pathname Components19–4
19.2.2.2 Special Pathname Component Values19–5
19.2.2.2.1 NIL as a Component Value19–5
19.2.2.2.2 :WILD as a Component Value19–5
19.2.2.2.3 :UNSPECIFIC as a Component Value19–5
19.2.2.2.3.1 Relation between component values NIL and :UNSPECIFIC19–6
19.2.2.3 Restrictions on Wildcard Pathnames19–6
19.2.2.4 Restrictions on Examining Pathname Components19–6
19.2.2.4.1 Restrictions on Examining a Pathname Host Component19–7
19.2.2.4.2 Restrictions on Examining a Pathname Device Component19–7
19.2.2.4.3 Restrictions on Examining a Pathname Directory Component19–7
19.2.2.4.3.1 Directory Components in Non-Hierarchical File Systems19–8
19.2.2.4.4 Restrictions on Examining a Pathname Name Component19–9
19.2.2.4.5 Restrictions on Examining a Pathname Type Component19–9
19.2.2.4.6 Restrictions on Examining a Pathname Version Component19–9
19.2.2.4.7 Notes about the Pathname Version Component19–9
19.2.2.5 Restrictions on Constructing Pathnames19–9
19.2.3Merging Pathnames19–10
19.2.3.1Examples of Merging Pathnames19–10
19.3 Logical Pathnames19–12
19.3.1 Syntax of Logical Pathname Namestrings19–12
19.3.1.1 Additional Information about Parsing Logical Pathname Namestrings19–12
19.3.1.1.1 The Host part of a Logical Pathname Namestring19–13
19.3.1.1.2 The Device part of a Logical Pathname Namestring19–13
19.3.1.1.3 The Directory part of a Logical Pathname Namestring19–13
19.3.1.1.4 The Type part of a Logical Pathname Namestring19–13
19.3.1.1.5 The Version part of a Logical Pathname Namestring19–13
19.3.1.1.6 Wildcard Words in a Logical Pathname Namestring19–13
19.3.1.1.7 Lowercase Letters in a Logical Pathname Namestring19–13
19.3.1.1.8 Other Syntax in a Logical Pathname Namestring19–13
19.3.2 Logical Pathname Components19–14
19.3.2.1 Unspecific Components of a Logical Pathname19–14
19.3.2.2 Null Strings as Components of a Logical Pathname19–14
19.4 Filenames Dictionary19–15

Chapter 20 (Files)

TopicPage(s)
20.1 File System Concepts20–1
20.1.1 Coercion of Streams to Pathnames20–1
20.1.2 File Operations on Open and Closed Streams20–1
20.1.3 Truenames20–2
20.1.3.1 Examples of Truenames20–2
20.2 Files Dictionary20–3

Chapter 21 (Streams)

TopicPage(s)
21.1 Stream Concepts21–1
21.1.1 Introduction to Streams21–1
21.1.1.1 Abstract Classifications of Streams21–1
21.1.1.1.1 Input, Output, and Bidirectional Streams21–1
21.1.1.1.2 Open and Closed Streams21–2
21.1.1.1.3 Interactive Streams21–2
21.1.1.2 Abstract Classifications of Streams21–3
21.1.1.2.1 File Streams21–3
21.1.1.3 Other Subclasses of Stream21–3
21.1.2 Stream Variables21–4
21.1.3 Stream Arguments to Standardized Functions21–5
21.1.4 Restrictions on Composite Streams21–6
21.2 Streams Dictionary21–7

Chapter 22 (Printer)

TopicPage(s)
22.1 The Lisp Printer22–1
22.1.1 Overview of The Lisp Printer22–1
22.1.1.1 Multiple Possible Textual Representations22–1
22.1.1.1.1 Printer Escaping22–2
22.1.2 Printer Dispatching22–2
22.1.3 Default Print-Object Methods22–2
22.1.3.1 Printing Numbers22–2
22.1.3.1.1 Printing Integers22–2
22.1.3.1.2 Printing Ratios22–3
22.1.3.1.3 Printing Floats22–3
22.1.3.1.4 Printing Complexes22–3
22.1.3.1.5 Note about Printing Numbers22–3
22.1.3.2 Printing Characters22–4
22.1.3.3 Printing Symbols22–4
22.1.3.3.1 Package Prefixes for Symbols22–4
22.1.3.3.2 Effect of Readtable Case on the Lisp Printer22–5
22.1.3.3.2.1Examples of Effect of Readtable Case on the Lisp Printer22–6
22.1.3.4Printing Strings22–8
22.1.3.5Printing Lists and Conses22–8
22.1.3.6 Printing Bit Vectors22–9
22.1.3.7 Printing Other Vectors22–9
22.1.3.8 Printing Other Arrays22–9
22.1.3.9 Examples of Printing Arrays22–10
22.1.3.10 Printing Random States22–11
22.1.3.11 Printing Pathnames22–11
22.1.3.12 Printing Structures22–11
22.1.3.13 Printing Other Objects22–11
22.1.4Examples of Printer Behavior22–12
22.2 The Lisp Pretty Printer22–14
22.2.1 Pretty Printer Concepts22–14
22.2.1.1 Dynamic Control of the Arrangement of Output22–14
22.2.1.2 Format Directive Interface22–15
22.2.1.3Compiling Format Strings22–16
22.2.1.4Pretty Print Dispatch Tables22–16
22.2.1.5Pretty Printer Margins22–16
22.2.2Examples of using the Pretty Printer22–16
22.2.3 Notes about the Pretty Printer’s Background22–22
22.3 Formatted Output22–23
22.3.1 FORMAT Basic Output22–24
22.3.1.1 Tilde C: Character22–24
22.3.1.2 Tilde Percent: Newline22–25
22.3.1.3 Tilde Ampersand: Fresh-Line22–25
22.3.1.4 Tilde Vertical-Bar: Page22–25
22.3.1.5 Tilde Tilde: Tilde22–25
22.3.2 FORMAT Radix Control22–25
22.3.2.1 Tilde R: Radix22–25
22.3.2.2 Tilde D: Decimal22–26
22.3.2.3 Tilde B: Binary22–26
22.3.2.4 Tilde O: Octal22–26
22.3.2.5 Tilde X: Hexadecimal22–27
22.3.3 FORMAT Floating-Point Printers22–27
22.3.3.1 Tilde F: Fixed-Format Floating-Point22–27
22.3.3.2 Tilde E: Exponential Floating-Point22–28
22.3.3.3 Tilde G: General Floating-Point22–29
22.3.3.4 Tilde Dollarsign: Monetary Floating-Point22–30
22.3.4 FORMAT Printer Operations22–31
22.3.4.1 Tilde A: Aesthetic22–31
22.3.4.2 Tilde S: Standard22–31
22.3.4.3 Tilde W: Write22–31
22.3.5 FORMAT Pretty Printer Operations22–31
22.3.5.1 Tilde Underscore: Conditional Newline22–31
22.3.5.2 Tilde Less-Than-Sign: Logical Block22–32
22.3.5.3 Tilde I: Indent22–33
22.3.5.4 Tilde Slash: Call Function22–33
22.3.6 FORMAT Layout Control22–33
22.3.6.1 Tilde T: Tabulate22–33
22.3.6.2 Tilde Less-Than-Sign: Justification22–34
22.3.6.3 Tilde Greater-Than-Sign: End of Justification22–35
22.3.7 FORMAT Control-Flow Operations22–35
22.3.7.1 Tilde Asterisk: Go-To22–35
22.3.7.2Tilde Left-Bracket: Conditional Expression22–36
22.3.7.3 Tilde Right-Bracket: End of Conditional Expression22–37
22.3.7.4 Tilde Left-Brace: Iteration22–37
22.3.7.5 Tilde Right-Brace: End of Iteration22–38
22.3.7.6 Tilde Question-Mark: Recursive Processing22–38
22.3.8 FORMAT Miscellaneous Operations22–38
22.3.8.1 Tilde Left-Paren: Case Conversion22–39
22.3.8.2 Tilde Right-Paren: End of Case Conversion22–39
22.3.8.3 Tilde P: Plural22–39
22.3.9 FORMAT Miscellaneous Pseudo-Operations22–40
22.3.9.1 Tilde Semicolon: Clause Separator22–40
22.3.9.2 Tilde Circumflex: Escape Upward22–40
22.3.9.3 Tilde Newline: Ignored Newline22–41
22.3.10 Additional Information about FORMAT Operations22–41
22.3.10.1Nesting of FORMAT Operations22–42
22.3.10.2Missing and Additional FORMAT Arguments22–42
22.3.10.3Additional FORMAT Parameters22–42
22.3.10.4Undefined FORMAT Modifier Combinations22–42
22.3.11Examples of FORMAT22–42
22.3.12 Notes about FORMAT22–44
22.4Printer Dictionary22–46

Chapter 23 (Reader)

TopicPage(s)
23.1Reader Concepts23–1
23.1.1Dynamic Control of the Lisp Reader23–1
23.1.2Effect of Readtable Case on the Lisp Reader23–1
23.1.2.1Examples of Effect of Readtable Case on the Lisp Reader23–1
23.1.3 Argument Conventions of Some Reader Functions23–2
23.1.3.1 The EOF-ERROR-P argument23–2
23.1.3.2 The RECURSIVE-P argument23–2
23.2Reader Dictionary23–4

Chapter 24 (System Construction)

TopicPage(s)
24.1 System Construction Concepts24–1
24.1.1 Loading24–1
24.1.2 Features24–1
24.1.2.1 Feature Expressions24–1
24.1.2.1.1 Examples of Feature Expressions24–2
24.2 System Construction Dictionary24–3

Chapter 25 (Environment)

TopicPage(s)
25.1 The External Environment25–1
25.1.1 Top level loop25–1
25.1.2 Debugging Utilities25–1
25.1.3 Environment Inquiry25–1
25.1.4 Time25–2
25.1.4.1 Decoded Time25–2
25.1.4.2 Universal Time25–3
25.1.4.3 Internal Time25–4
25.1.4.4 Seconds25–4
25.2 Environment Dictionary25–5

Chapter 26 (Glossary)

TopicPage(s)
26.1 Glossary26–1

Chapter A (Appendix)

TopicPage(s)
A.1 Removed Language FeaturesA–1
A.1.1 Requirements for removed and deprecated featuresA–1
A.1.2 Removed TypesA–1
A.1.3 Removed OperatorsA–1
A.1.4 Removed Argument ConventionsA–1
A.1.5 Removed VariablesA–1
A.1.6 Removed Reader SyntaxA–1
A.1.7 Packages No Longer RequiredA–1