Contents

1 Introduction
 1.1 Purpose
 1.2 Notational Conventions
  1.2.1 Decimal Numbers
  1.2.2 Nil, False, and the Empty List
  1.2.3 Evaluation, Expansion, and Equivalence
  1.2.4 Errors
  1.2.5 Descriptions of Functions and Other Entities
  1.2.6 The Lisp Reader
  1.2.7 Overview of Syntax
2 Data Types
 2.1 Numbers
  2.1.1 Integers
  2.1.2 Ratios
  2.1.3 Floating-Point Numbers
  2.1.4 Complex Numbers
 2.2 Characters
  2.2.1 Standard Characters
  2.2.2 Line Divisions
  2.2.3 Non-standard Characters
 2.3 Symbols
 2.4 Lists and Conses
 2.5 Arrays
  2.5.1 Vectors
  2.5.2 Strings
  2.5.3 Bit-Vectors
 2.6 Hash Tables
 2.7 Readtables
 2.8 Packages
 2.9 Pathnames
 2.10 Streams
 2.11 Random-States
 2.12 Structures
 2.13 Functions
 2.14 Unreadable Data Objects
 2.15 Overlap, Inclusion, and Disjointness of Types
3 Scope and Extent
4 Type Specifiers
 4.1 Type Specifier Symbols
 4.2 Type Specifier Lists
 4.3 Predicating Type Specifiers
 4.4 Type Specifiers That Combine
 4.5 Type Specifiers That Specialize
 4.6 Type Specifiers That Abbreviate
 4.7 Defining New Type Specifiers
 4.8 Type Conversion Function
 4.9 Determining the Type of an Object
 4.10 Type Upgrading
5 Program Structure
 5.1 Forms
  5.1.1 Self-Evaluating Forms
  5.1.2 Variables
  5.1.3 Special Operators
  5.1.4 Macros
  5.1.5 Function Calls
 5.2 Functions
  5.2.1 Named Functions
  5.2.2 Lambda-Expressions
 5.3 Top-Level Forms
  5.3.1 Defining Named Functions
  5.3.2 Declaring Global Variables and Named Constants
  5.3.3 Control of Time of Evaluation
6 Predicates
 6.1 Logical Values
 6.2 Data Type Predicates
  6.2.1 General Type Predicates
  6.2.2 Specific Data Type Predicates
 6.3 Equality Predicates
 6.4 Logical operators
7 Control Structure
 7.1 Constants and Variables
  7.1.1 Reference
  7.1.2 Assignment
 7.2 Generalized Variables
 7.3 Function Invocation
 7.4 Simple Sequencing
 7.5 Establishing New Variable Bindings
 7.6 Conditionals
 7.7 Blocks and Exits
 7.8 Iteration
  7.8.1 Indefinite Iteration
  7.8.2 General Iteration
  7.8.3 Simple Iteration Constructs
  7.8.4 Mapping
  7.8.5 The “Program Feature”
 7.9 Structure Traversal and Side Effects
 7.10 Multiple Values
  7.10.1 Constructs for Handling Multiple Values
  7.10.2 Rules Governing the Passing of Multiple Values
 7.11 Dynamic Non-Local Exits
8 Macros
 8.1 Macro Definition
 8.2 Macro Expansion
 8.3 Destructuring
 8.4 Compiler Macros
 8.5 Environments
9 Declarations
 9.1 Declaration Syntax
 9.2 Declaration Specifiers
 9.3 Type Declaration for Forms
10 Symbols
 10.1 The Property List
 10.2 The Print Name
 10.3 Creating Symbols
11 Packages
 11.1 Consistency Rules
 11.2 Package Names
 11.3 Translating Strings to Symbols
 11.4 Exporting and Importing Symbols
 11.5 Name Conflicts
 11.6 Built-in Packages
 11.7 Package System Functions and Variables
12 Numbers
 12.1 Precision, Contagion, and Coercion
 12.2 Predicates on Numbers
 12.3 Comparisons on Numbers
 12.4 Arithmetic Operations
 12.5 Irrational and Transcendental Functions
  12.5.1 Exponential and Logarithmic Functions
  12.5.2 Trigonometric and Related Functions
  12.5.3 Branch Cuts, Principal Values, and Boundary Conditions in the Complex Plane
 12.6 Type Conversions and Component Extractions on Numbers
 12.7 Logical Operations on Numbers
 12.8 Byte Manipulation Functions
 12.9 Random Numbers
 12.10 Implementation Parameters
13 Characters
 13.1 Character Attributes
 13.2 Predicates on Characters
 13.3 Character Construction and Selection
 13.4 Character Conversions
14 Sequences
 14.1 Simple Sequence Functions
 14.2 Concatenating, Mapping, and Reducing Sequences
 14.3 Modifying Sequences
 14.4 Searching Sequences for Items
 14.5 Sorting and Merging
15 Lists
 15.1 Conses
 15.2 Lists
 15.3 Alteration of List Structure
 15.4 Substitution of Expressions
 15.5 Using Lists as Sets
 15.6 Association Lists
16 Hash Tables
 16.1 Hash Table Functions
 16.2 Primitive Hash Function
17 Arrays
 17.1 Array Creation
 17.2 Array Access
 17.3 Array Information
 17.4 Functions on Arrays of Bits
 17.5 Fill Pointers
 17.6 Changing the Dimensions of an Array
18 Strings
 18.1 String Access
 18.2 String Comparison
 18.3 String Construction and Manipulation
19 Structures
 19.1 Introduction to Structures
 19.2 How to Use Defstruct
 19.3 Using the Automatically Defined Constructor Function
 19.4 Defstruct Slot-Options
 19.5 Defstruct Options
 19.6 By-Position Constructor Functions
 19.7 Structures of Explicitly Specified Representational Type
  19.7.1 Unnamed Structures
  19.7.2 Named Structures
  19.7.3 Other Aspects of Explicitly Specified Structures
20 Evaluator
 20.1 Run-Time Evaluation of Forms
 20.2 The Top-Level Loop
21 Streams
 21.1 Standard Streams
 21.2 Creating New Streams
 21.3 Operations on Streams
22 Input/Output
 22.1 Printed Representation of Lisp Objects
  22.1.1 What the Read Function Accepts
  22.1.2 Parsing of Numbers and Symbols
  22.1.3 Macro Characters
  22.1.4 Standard Dispatching Macro Character Syntax
  22.1.5 The Readtable
  22.1.6 What the Print Function Produces
 22.2 Input Functions
  22.2.1 Input from Character Streams
  22.2.2 Input from Binary Streams
 22.3 Output Functions
  22.3.1 Output to Character Streams
  22.3.2 Output to Binary Streams
  22.3.3 Formatted Output to Character Streams
 22.4 Querying the User
23 File System Interface
 23.1 File Names
  23.1.1 Pathnames
  23.1.2 Case Conventions
  23.1.3 Structured Directories
  23.1.4 Extended Wildcards
  23.1.5 Logical Pathnames
  23.1.6 Pathname Functions
 23.2 Opening and Closing Files
 23.3 Renaming, Deleting, and Other File Operations
 23.4 Loading Files
 23.5 Accessing Directories
24 Miscellaneous Features
 24.1 The Compiler
  24.1.1 Compiler Diagnostics
  24.1.2 Compiled Functions
  24.1.3 Compilation Environment
  24.1.4 Similarity of Constants
 24.2 Debugging Tools
 24.3 Environment Inquiries
  24.3.1 Time Functions
  24.3.2 Other Environment Inquiries
  24.3.3 Справочные функции о среде
 24.4 Identity Function
25 Loop
26 Цикл loop
 26.1 Introduction
 26.2 Введение
 26.3 How the Loop Facility Works
 26.4 Как работает Loop
 26.5 Parsing Loop Clauses
 26.6 Парсинг выражений Loop
  26.6.1 Order of Execution
  26.6.2 Порядок вычисления
  26.6.3 Kinds of Loop Clauses
  26.6.4 Разновидности Loop выражений
  26.6.5 Loop Syntax
  26.6.6 Синтаксис Loop
 26.7 User Extensibility
 26.8 Пользовательские расширения
 26.9 Loop Constructs
 26.10 Конструкции Loop
 26.11 Iteration Control
 26.12 Управление итерациями
 26.13 End-Test Control
 26.14 Проверка завершения
 26.15 Value Accumulation
 26.16 Variable Initializations
 26.17 Инициализация переменных
 26.18 Conditional Execution
 26.19 Условное выполнение
 26.20 Unconditional Execution
 26.21 Безусловное выполнение
 26.22 Miscellaneous Features
 26.23 Дополнительные возможности
  26.23.1 Data Types
  26.23.2 Типы данных
  26.23.3 Destructuring
27 Pretty Printing
 27.1 Introduction
 27.2 Pretty Printing Control Variables
 27.3 Dynamic Control of the Arrangement of Output
 27.4 Format Directive Interface
 27.5 Compiling Format Control Strings
 27.6 Pretty Printing Dispatch Tables
28 Common Lisp Object System
 28.1 Programmer Interface Concepts
  28.1.1 Error Terminology
  28.1.2 Classes
  28.1.3 Inheritance
  28.1.4 Integrating Types and Classes
  28.1.5 Determining the Class Precedence List
  28.1.6 Generic Functions and Methods
  28.1.7 Method Selection and Combination
  28.1.8 Meta-objects
  28.1.9 Object Creation and Initialization
  28.1.10 Redefining Classes
  28.1.11 Changing the Class of an Instance
  28.1.12 Reinitializing an Instance
 28.2 Functions in the Programmer Interface
29 Conditions
 29.1 Introduction
 29.2 Changes in Terminology
 29.3 Survey of Concepts
  29.3.1 Signaling Errors
  29.3.2 Trapping Errors
  29.3.3 Handling Conditions
  29.3.4 Object-Oriented Basis of Condition Handling
  29.3.5 Restarts
  29.3.6 Anonymous Restarts
  29.3.7 Named Restarts
  29.3.8 Restart Functions
  29.3.9 Comparison of Restarts and Catch/Throw
  29.3.10 Generalized Restarts
  29.3.11 Interactive Condition Handling
  29.3.12 Serious Conditions
  29.3.13 Non-Serious Conditions
  29.3.14 Condition Types
  29.3.15 Signaling Conditions
  29.3.16 Resignaling Conditions
  29.3.17 Condition Handlers
  29.3.18 Printing Conditions
 29.4 Program Interface to the Condition System
  29.4.1 Signaling Conditions
  29.4.2 Assertions
  29.4.3 Exhaustive Case Analysis
  29.4.4 Handling Conditions
  29.4.5 Defining Conditions
  29.4.6 Creating Conditions
  29.4.7 Establishing Restarts
  29.4.8 Finding and Manipulating Restarts
  29.4.9 Warnings
  29.4.10 Restart Functions
  29.4.11 Debugging Utilities
 29.5 Predefined Condition Types
30 Metaobject Protocol
 30.1 Concepts
  30.1.1 Introduction
  30.1.2 Введение
  30.1.3 Inheritance Structure of Metaobject Classes
  30.1.4 Processing of the User Interface Macros
  30.1.5 Subprotocols
 30.2 Generic Functions and Methods Dictionary
  30.2.1 Initialization of Class Metaobjects
  30.2.2 Initialization of Generic Function Metaobjects
  30.2.3 Initialization of Method Metaobjects
  30.2.4 Initialization of Slot Definition Metaobjects
  30.2.5 Readers for Class Metaobjects
  30.2.6 Readers for Generic Function Metaobjects
  30.2.7 Readers for Method Metaobjects
  30.2.8 Readers for Slot Definition Metaobjects