CLCS
1
Introduction (Introduction)
1.1
Scope
1.1.1
Scope and Purpose
1.1.2
History
1.2
Organization of the Document
1.3
Referenced Publications
1.4
Definitions
1.4.1
Notational Conventions
1.4.1.1
Font Key
1.4.1.2
Modified BNF Syntax
1.4.1.3
Splicing in Modified BNF Syntax
1.4.1.4
Indirection in Modified BNF Syntax
1.4.1.5
Additional Uses for Indirect Definitions in Modified BNF Syntax
1.4.1.6
Special Symbols
1.4.1.7
Objects with Multiple Notations
1.4.1.8
Case in Symbols
1.4.1.9
Numbers (Objects with Multiple Notations)
1.4.1.10
Use of the Dot Character
1.4.1.12
Designators
1.4.1.13
Nonsense Words
1.4.2
Error Terminology
1.4.3
Sections Not Formally Part Of This Standard
1.4.4
Interpreting Dictionary Entries
1.4.4.1
The "Affected By" Section of a Dictionary Entry
1.4.4.2
The "Arguments" Section of a Dictionary Entry
1.4.4.3
The "Arguments and Values" Section of a Dictionary Entry
1.4.4.4
The "Binding Types Affected" Section of a Dictionary Entry
1.4.4.5
The "Class Precedence List" Section of a Dictionary Entry
1.4.4.6
Dictionary Entries for Type Specifiers
1.4.4.7
The "Compound Type Specifier Kind" Section of a Dictionary Entry
1.4.4.8
The "Compound Type Specifier Syntax" Section of a Dictionary Entry
1.4.4.9
The "Compound Type Specifier Arguments" Section of a Dictionary Entry
1.4.4.10
The "Compound Type Specifier Description" Section of a Dictionary Entry
1.4.4.11
The "Constant Value" Section of a Dictionary Entry
1.4.4.12
The "Description" Section of a Dictionary Entry
1.4.4.13
The "Examples" Section of a Dictionary Entry
1.4.4.14
The "Exceptional Situations" Section of a Dictionary Entry
1.4.4.15
The "Initial Value" Section of a Dictionary Entry
1.4.4.16
The "Argument Precedence Order" Section of a Dictionary Entry
1.4.4.17
The "Method Signature" Section of a Dictionary Entry
1.4.4.18
The "Name" Section of a Dictionary Entry
1.4.4.19
The "Notes" Section of a Dictionary Entry
1.4.4.20
The "Pronunciation" Section of a Dictionary Entry
1.4.4.21
The "See Also" Section of a Dictionary Entry
1.4.4.22
The "Side Effects" Section of a Dictionary Entry
1.4.4.23
The "Supertypes" Section of a Dictionary Entry
1.4.4.24
The "Syntax" Section of a Dictionary Entry
1.4.4.25
Special "Syntax" Notations for Overloaded Operators
1.4.4.26
Naming Conventions for Rest Parameters
1.4.4.27
Requiring Non-Null Rest Parameters in the "Syntax" Section
1.4.4.28
Return values in the "Syntax" Section
1.4.4.29
No Arguments or Values in the "Syntax" Section
1.4.4.30
Unconditional Transfer of Control in the "Syntax" Section
1.4.4.31
The "Valid Context" Section of a Dictionary Entry
1.4.4.32
The "Value Type" Section of a Dictionary Entry
1.5
Conformance
1.5.1
Conforming Implementations
1.5.1.1
Required Language Features
1.5.1.2
Documentation of Implementation-Dependent Features
1.5.1.3
Documentation of Extensions
1.5.1.4
Treatment of Exceptional Situations
1.5.1.5
Resolution of Apparent Conflicts in Exceptional Situations
1.5.1.6
Examples of Resolution of Apparent Conflict in Exceptional Situations
1.5.1.7
Conformance Statement
1.5.2
Conforming Programs
1.5.2.1
Use of Implementation-Defined Language Features
1.5.2.2
Use of Read-Time Conditionals
1.6
Language Extensions
1.7
Language Subsets
1.8
Deprecated Language Features
1.8.1
Deprecated Functions
1.8.2
Deprecated Argument Conventions
1.8.3
Deprecated Variables
1.8.4
Deprecated Reader Syntax
1.9
Symbols in the COMMON-LISP Package
2
Syntax
2.1
Character Syntax
2.1.1
Readtables
2.1.1.1
The Current Readtable
2.1.1.2
The Standard Readtable
2.1.1.3
The Initial Readtable
2.1.2
Variables that affect the Lisp Reader
2.1.3
Standard Characters
2.1.4
Character Syntax Types
2.1.4.1
Constituent Characters
2.1.4.2
Constituent Traits
2.1.4.3
Invalid Characters
2.1.4.4
Macro Characters
2.1.4.5
Multiple Escape Characters
2.1.4.6
Examples of Multiple Escape Characters
2.1.4.7
Single Escape Character
2.1.4.8
Examples of Single Escape Characters
2.1.4.9
Whitespace Characters
2.1.4.10
Examples of Whitespace Characters
2.2
Reader Algorithm
2.3
Interpretation of Tokens
2.3.1
Numbers as Tokens
2.3.1.1
Potential Numbers as Tokens
2.3.1.2
Escape Characters and Potential Numbers
2.3.1.3
Examples of Potential Numbers
2.3.2
Constructing Numbers from Tokens
2.3.2.1
Syntax of a Rational
2.3.2.2
Syntax of an Integer
2.3.2.3
Syntax of a Ratio
2.3.2.4
Syntax of a Float
2.3.2.5
Syntax of a Complex
2.3.3
The Consing Dot
2.3.4
Symbols as Tokens
2.3.5
Valid Patterns for Tokens
2.3.6
Package System Consistency Rules
2.4
Standard Macro Characters
2.4.1
Left-Parenthesis
2.4.2
Right-Parenthesis
2.4.3
Single-Quote
2.4.3.1
Examples of Single-Quote
2.4.4
Semicolon
2.4.4.1
Examples of Semicolon
2.4.4.2
Notes about Style for Semicolon
2.4.4.3
Use of Single Semicolon
2.4.4.4
Use of Double Semicolon
2.4.4.5
Use of Triple Semicolon
2.4.4.6
Use of Quadruple Semicolon
2.4.4.7
Examples of Style for Semicolon
2.4.5
Double-Quote
2.4.6
Backquote
2.4.6.1
Notes about Backquote
2.4.7
Comma
2.4.8
Sharpsign
2.4.8.1
Sharpsign Backslash
2.4.8.2
Sharpsign Single-Quote
2.4.8.3
Sharpsign Left-Parenthesis
2.4.8.4
Sharpsign Asterisk
2.4.8.5
Examples of Sharpsign Asterisk
2.4.8.6
Sharpsign Colon
2.4.8.7
Sharpsign Dot
2.4.8.8
Sharpsign B
2.4.8.9
Sharpsign O
2.4.8.10
Sharpsign X
2.4.8.11
Sharpsign R
2.4.8.12
Sharpsign C
2.4.8.13
Sharpsign A
2.4.8.14
Sharpsign S
2.4.8.15
Sharpsign P
2.4.8.16
Sharpsign Equal-Sign
2.4.8.17
Sharpsign Sharpsign
2.4.8.18
Sharpsign Plus
2.4.8.19
Sharpsign Minus
2.4.8.20
Sharpsign Vertical-Bar
2.4.8.21
Examples of Sharpsign Vertical-Bar
2.4.8.22
Notes about Style for Sharpsign Vertical-Bar
2.4.8.23
Sharpsign Less-Than-Sign
2.4.8.24
Sharpsign Whitespace
2.4.8.25
Sharpsign Right-Parenthesis
2.4.9
Re-Reading Abbreviated Expressions
3
Evaluation and Compilation
3.1
Evaluation
3.1.1
Introduction to Environments
3.1.1.1
The Global Environment
3.1.1.2
Dynamic Environments
3.1.1.3
Lexical Environments
3.1.1.4
The Null Lexical Environment
3.1.1.5
Environment Objects
3.1.2
The Evaluation Model
3.1.2.1
Form Evaluation
3.1.2.2
Symbols as Forms
3.1.2.3
Lexical Variables
3.1.2.4
Dynamic Variables
3.1.2.5
Constant Variables
3.1.2.6
Symbols Naming Both Lexical and Dynamic Variables
3.1.2.7
Conses as Forms
3.1.2.8
Special Forms
3.1.2.9
Macro Forms
3.1.2.10
Function Forms
3.1.2.11
Lambda Forms
3.1.2.12
Self-Evaluating Objects
3.1.2.13
Examples of Self-Evaluating Objects
3.1.3
Lambda Expressions
3.1.4
Closures and Lexical Binding
3.1.5
Shadowing
3.1.6
Extent
3.1.7
Return Values
3.2
Compilation
3.2.1
Compiler Terminology
3.2.2
Compilation Semantics
3.2.2.1
Compiler Macros
3.2.2.2
Purpose of Compiler Macros
3.2.2.3
Naming of Compiler Macros
3.2.2.4
When Compiler Macros Are Used
3.2.2.5
Notes about the Implementation of Compiler Macros
3.2.2.6
Minimal Compilation
3.2.2.7
Semantic Constraints
3.2.3
File Compilation
3.2.3.1
Processing of Top Level Forms
3.2.3.2
Processing of Defining Macros
3.2.3.3
Constraints on Macros and Compiler Macros
3.2.4
Literal Objects in Compiled Files
3.2.4.1
Externalizable Objects
3.2.4.2
Similarity of Literal Objects
3.2.4.3
Similarity of Aggregate Objects
3.2.4.4
Definition of Similarity
3.2.4.5
Extensions to Similarity Rules
3.2.4.6
Additional Constraints on Externalizable Objects
3.2.5
Exceptional Situations in the Compiler
3.3
Declarations
3.3.1
Minimal Declaration Processing Requirements
3.3.2
Declaration Specifiers
3.3.3
Declaration Identifiers
3.3.3.1
Shorthand notation for Type Declarations
3.3.4
Declaration Scope
3.3.4.1
Examples of Declaration Scope
3.4
Lambda Lists
3.4.1
Ordinary Lambda Lists
3.4.1.1
Specifiers for the required parameters
3.4.1.2
Specifiers for optional parameters
3.4.1.3
A specifier for a rest parameter
3.4.1.4
Specifiers for keyword parameters
3.4.1.5
Suppressing Keyword Argument Checking
3.4.1.6
Examples of Suppressing Keyword Argument Checking
3.4.1.7
Specifiers for &aux variables
3.4.1.8
Examples of Ordinary Lambda Lists
3.4.2
Generic Function Lambda Lists
3.4.3
Specialized Lambda Lists
3.4.4
Macro Lambda Lists
3.4.4.1
Destructuring by Lambda Lists
3.4.4.2
Data-directed Destructuring by Lambda Lists
3.4.4.3
Examples of Data-directed Destructuring by Lambda Lists
3.4.4.4
Lambda-list-directed Destructuring by Lambda Lists
3.4.5
Destructuring Lambda Lists
3.4.6
Boa Lambda Lists
3.4.7
Defsetf Lambda Lists
3.4.8
Deftype Lambda Lists
3.4.9
Define-modify-macro Lambda Lists
3.4.10
Define-method-combination Arguments Lambda Lists
3.4.11
Syntactic Interaction of Documentation Strings and Declarations
3.5
Error Checking in Function Calls
3.5.1
Argument Mismatch Detection
3.5.1.1
Safe and Unsafe Calls
3.5.1.2
Error Detection Time in Safe Calls
3.5.1.3
Too Few Arguments
3.5.1.4
Too Many Arguments
3.5.1.5
Unrecognized Keyword Arguments
3.5.1.6
Invalid Keyword Arguments
3.5.1.7
Odd Number of Keyword Arguments
3.5.1.8
Destructuring Mismatch
3.5.1.9
Errors When Calling a Next Method
3.6
Traversal Rules and Side Effects
3.7
Destructive Operations
3.7.1
Modification of Literal Objects
3.7.2
Transfer of Control during a Destructive Operation
3.7.2.1
Examples of Transfer of Control during a Destructive Operation
3.8
Evaluation and Compilation Dictionary
3.8.1
lambda (Symbol)
3.8.2
lambda
3.8.3
compile
3.8.4
eval
3.8.5
eval-when
3.8.6
load-time-value
3.8.7
quote
3.8.8
compiler-macro-function
3.8.9
define-compiler-macro
3.8.10
defmacro
3.8.11
macro-function
3.8.12
macroexpand
3.8.13
define-symbol-macro
3.8.14
symbol-macrolet
3.8.15
*macroexpand-hook*
3.8.16
proclaim
3.8.17
declaim
3.8.18
declare
3.8.19
ignore
3.8.20
dynamic-extent
3.8.21
type
3.8.22
inline
3.8.23
ftype
3.8.24
declaration
3.8.25
optimize
3.8.26
special
3.8.27
locally
3.8.28
the
3.8.29
special-operator-p
3.8.30
constantp
4
Types and Classes
4.1
Introduction (Types and Classes)
4.2
Types
4.2.1
Data Type Definition
4.2.2
Type Relationships
4.2.3
Type Specifiers
4.3
Classes
4.3.1
Introduction to Classes
4.3.1.1
Standard Metaclasses
4.3.2
Defining Classes
4.3.3
Creating Instances of Classes
4.3.4
Inheritance
4.3.4.1
Examples of Inheritance
4.3.4.2
Inheritance of Class Options
4.3.5
Determining the Class Precedence List
4.3.5.1
Topological Sorting
4.3.5.2
Examples of Class Precedence List Determination
4.3.6
Redefining Classes
4.3.6.1
Modifying the Structure of Instances
4.3.6.2
Initializing Newly Added Local Slots (Redefining Classes)
4.3.6.3
Customizing Class Redefinition
4.3.7
Integrating Types and Classes
4.4
Types and Classes Dictionary
4.4.1
nil (Type)
4.4.2
boolean
4.4.3
function (System Class)
4.4.4
compiled-function
4.4.5
generic-function
4.4.6
standard-generic-function
4.4.7
class
4.4.8
built-in-class
4.4.9
structure-class
4.4.10
standard-class
4.4.11
method
4.4.12
standard-method
4.4.13
structure-object
4.4.14
standard-object
4.4.15
method-combination
4.4.16
t (System Class)
4.4.17
satisfies
4.4.18
member
4.4.19
not (Type Specifier)
4.4.20
and (Type Specifier)
4.4.21
or (Type Specifier)
4.4.22
values (Type Specifier)
4.4.23
eql (Type Specifier)
4.4.24
coerce
4.4.25
deftype
4.4.26
subtypep
4.4.27
type-of
4.4.28
typep
4.4.29
type-error
4.4.30
type-error-datum
4.4.31
simple-type-error
5
Data and Control Flow
5.1
Generalized Reference
5.1.1
Overview of Places and Generalized Reference
5.1.1.1
Evaluation of Subforms to Places
5.1.1.2
Examples of Evaluation of Subforms to Places
5.1.1.3
Setf Expansions
5.1.1.4
Examples of Setf Expansions
5.1.2
Kinds of Places
5.1.2.1
Variable Names as Places
5.1.2.2
Function Call Forms as Places
5.1.2.3
VALUES Forms as Places
5.1.2.4
THE Forms as Places
5.1.2.5
APPLY Forms as Places
5.1.2.6
Setf Expansions and Places
5.1.2.7
Macro Forms as Places
5.1.2.8
Symbol Macros as Places
5.1.2.9
Other Compound Forms as Places
5.1.3
Treatment of Other Macros Based on SETF
5.2
Transfer of Control to an Exit Point
5.3
Data and Control Flow Dictionary
5.3.1
apply
5.3.2
defun
5.3.3
fdefinition
5.3.4
fboundp
5.3.5
fmakunbound
5.3.6
flet
5.3.7
funcall
5.3.8
function (Special Operator)
5.3.9
function-lambda-expression
5.3.10
functionp
5.3.11
compiled-function-p
5.3.12
call-arguments-limit
5.3.13
lambda-list-keywords
5.3.14
lambda-parameters-limit
5.3.15
defconstant
5.3.16
defparameter
5.3.17
destructuring-bind
5.3.18
let
5.3.19
progv
5.3.20
setq
5.3.21
psetq
5.3.22
block
5.3.23
catch
5.3.24
go
5.3.25
return-from
5.3.26
return
5.3.27
tagbody
5.3.28
throw
5.3.29
unwind-protect
5.3.30
nil (Constant Variable)
5.3.31
not
5.3.32
t
5.3.33
eq
5.3.34
eql
5.3.35
equal
5.3.36
equalp
5.3.37
identity
5.3.38
complement
5.3.39
constantly
5.3.40
every
5.3.41
and
5.3.42
cond
5.3.43
if
5.3.44
or
5.3.45
when
5.3.46
case
5.3.47
typecase
5.3.48
multiple-value-bind
5.3.49
multiple-value-call
5.3.50
multiple-value-list
5.3.51
multiple-value-prog1
5.3.52
multiple-value-setq
5.3.53
values
5.3.54
values-list
5.3.55
multiple-values-limit
5.3.56
nth-value
5.3.57
prog
5.3.58
prog1
5.3.59
progn
5.3.60
define-modify-macro
5.3.61
defsetf
5.3.62
define-setf-expander
5.3.63
get-setf-expansion
5.3.64
setf
5.3.65
shiftf
5.3.66
rotatef
5.3.67
control-error
5.3.68
program-error
5.3.69
undefined-function
6
Iteration
6.1
The LOOP Facility
6.1.1
Overview of the Loop Facility
6.1.1.1
Simple vs Extended Loop
6.1.1.2
Simple Loop
6.1.1.3
Extended Loop
6.1.1.4
Loop Keywords
6.1.1.5
Parsing Loop Clauses
6.1.1.6
Expanding Loop Forms
6.1.1.7
Summary of Loop Clauses
6.1.1.8
Summary of Variable Initialization and Stepping Clauses
6.1.1.9
Summary of Value Accumulation Clauses
6.1.1.10
Summary of Termination Test Clauses
6.1.1.11
Summary of Unconditional Execution Clauses
6.1.1.12
Summary of Conditional Execution Clauses
6.1.1.13
Summary of Miscellaneous Clauses
6.1.1.14
Order of Execution
6.1.1.15
Destructuring
6.1.1.16
Restrictions on Side-Effects
6.1.2
Variable Initialization and Stepping Clauses
6.1.2.1
Iteration Control
6.1.2.2
The for-as-arithmetic subclause
6.1.2.3
Examples of for-as-arithmetic subclause
6.1.2.4
The for-as-in-list subclause
6.1.2.5
Examples of for-as-in-list subclause
6.1.2.6
The for-as-on-list subclause
6.1.2.7
Examples of for-as-on-list subclause
6.1.2.8
The for-as-equals-then subclause
6.1.2.9
Examples of for-as-equals-then subclause
6.1.2.10
The for-as-across subclause
6.1.2.11
Examples of for-as-across subclause
6.1.2.12
The for-as-hash subclause
6.1.2.13
The for-as-package subclause
6.1.2.14
Examples of for-as-package subclause
6.1.2.15
Local Variable Initializations
6.1.2.16
Examples of WITH clause
6.1.3
Value Accumulation Clauses
6.1.3.1
Examples of COLLECT clause
6.1.3.2
Examples of APPEND and NCONC clauses
6.1.3.3
Examples of COUNT clause
6.1.3.4
Examples of MAXIMIZE and MINIMIZE clauses
6.1.3.5
Examples of SUM clause
6.1.4
Termination Test Clauses
6.1.4.1
Examples of REPEAT clause
6.1.4.2
Examples of ALWAYS
6.1.4.3
Examples of WHILE and UNTIL clauses
6.1.5
Unconditional Execution Clauses
6.1.5.1
Examples of unconditional execution
6.1.6
Conditional Execution Clauses
6.1.6.1
Examples of WHEN clause
6.1.7
Miscellaneous Clauses
6.1.7.1
Control Transfer Clauses
6.1.7.2
Examples of NAMED clause
6.1.7.3
Initial and Final Execution
6.1.8
Examples of Miscellaneous Loop Features
6.1.8.1
Examples of clause grouping
6.1.9
Notes about Loop
6.2
Iteration Dictionary
6.2.1
do
6.2.2
dotimes
6.2.3
dolist
6.2.4
loop
6.2.5
loop-finish
7
Objects
7.1
Object Creation and Initialization
7.1.1
Initialization Arguments
7.1.2
Declaring the Validity of Initialization Arguments
7.1.3
Defaulting of Initialization Arguments
7.1.4
Rules for Initialization Arguments
7.1.7
Definitions of Make-Instance and Initialize-Instance
7.2
Changing the Class of an Instance
7.2.1
Modifying the Structure of the Instance
7.2.2
Initializing Newly Added Local Slots (Changing the Class of an Instance)
7.2.3
Customizing the Change of Class of an Instance
7.3
Reinitializing an Instance
7.3.1
Customizing Reinitialization
7.4
Meta-Objects
7.4.1
Standard Meta-objects
7.5
Slots
7.5.1
Introduction to Slots
7.5.2
Accessing Slots
7.5.3
Inheritance of Slots and Slot Options
7.6
Generic Functions and Methods
7.6.1
Introduction to Generic Functions
7.6.2
Introduction to Methods
7.6.3
Agreement on Parameter Specializers and Qualifiers
7.6.4
Congruent Lambda-lists for all Methods of a Generic Function
7.6.5
Keyword Arguments in Generic Functions and Methods
7.6.5.1
Examples of Keyword Arguments in Generic Functions and Methods
7.6.6
Method Selection and Combination
7.6.6.1
Determining the Effective Method
7.6.6.2
Selecting the Applicable Methods
7.6.6.3
Sorting the Applicable Methods by Precedence Order
7.6.6.4
Applying method combination to the sorted list of applicable methods
7.6.6.5
Standard Method Combination
7.6.6.6
Declarative Method Combination
7.6.6.7
Built-in Method Combination Types
7.6.7
Inheritance of Methods
7.7
Objects Dictionary
7.7.1
function-keywords
7.7.2
ensure-generic-function
7.7.3
allocate-instance
7.7.4
reinitialize-instance
7.7.5
shared-initialize
7.7.6
update-instance-for-different-class
7.7.7
update-instance-for-redefined-class
7.7.8
change-class
7.7.9
slot-boundp
7.7.10
slot-exists-p
7.7.11
slot-makunbound
7.7.12
slot-missing
7.7.13
slot-unbound
7.7.14
slot-value
7.7.15
method-qualifiers
7.7.16
no-applicable-method
7.7.17
no-next-method
7.7.18
remove-method
7.7.19
make-instance
7.7.20
make-instances-obsolete
7.7.21
make-load-form
7.7.22
make-load-form-saving-slots
7.7.23
with-accessors
7.7.24
with-slots
7.7.25
defclass
7.7.26
defgeneric
7.7.27
defmethod
7.7.28
find-class
7.7.29
next-method-p
7.7.30
call-method
7.7.31
call-next-method
7.7.32
compute-applicable-methods
7.7.33
define-method-combination
7.7.34
find-method
7.7.35
add-method
7.7.36
initialize-instance
7.7.37
class-name
7.7.38
(setf class-name)
7.7.39
class-of
7.7.40
unbound-slot
7.7.41
unbound-slot-instance
8
Structures
8.1
Structures Dictionary
8.1.1
defstruct
8.1.2
copy-structure
9
Conditions
9.1
Condition System Concepts
9.1.1
Condition Types
9.1.1.1
Serious Conditions
9.1.2
Creating Conditions
9.1.2.1
Condition Designators
9.1.3
Printing Conditions
9.1.3.1
Recommended Style in Condition Reporting
9.1.3.2
Capitalization and Punctuation in Condition Reports
9.1.3.3
Leading and Trailing Newlines in Condition Reports
9.1.3.4
Embedded Newlines in Condition Reports
9.1.3.5
Note about Tabs in Condition Reports
9.1.3.6
Mentioning Containing Function in Condition Reports
9.1.4
Signaling and Handling Conditions
9.1.4.1
Signaling
9.1.4.2
Resignaling a Condition
9.1.4.3
Restarts
9.1.4.4
Interactive Use of Restarts
9.1.4.5
Interfaces to Restarts
9.1.4.6
Restart Tests
9.1.4.7
Associating a Restart with a Condition
9.1.5
Assertions
9.1.6
Notes about the Condition System's Background
9.2
Conditions Dictionary
9.2.1
condition
9.2.2
warning
9.2.3
style-warning
9.2.4
serious-condition
9.2.5
error (Condition Type)
9.2.6
cell-error
9.2.7
cell-error-name
9.2.8
parse-error
9.2.9
storage-condition
9.2.10
assert
9.2.11
error
9.2.12
cerror
9.2.13
check-type
9.2.14
simple-error
9.2.15
invalid-method-error
9.2.16
method-combination-error
9.2.17
signal
9.2.18
simple-condition
9.2.19
simple-condition-format-control
9.2.20
warn
9.2.21
simple-warning
9.2.22
invoke-debugger
9.2.23
break
9.2.24
*debugger-hook*
9.2.25
*break-on-signals*
9.2.26
handler-bind
9.2.27
handler-case
9.2.28
ignore-errors
9.2.29
define-condition
9.2.30
make-condition
9.2.31
restart
9.2.32
compute-restarts
9.2.33
find-restart
9.2.34
invoke-restart
9.2.35
invoke-restart-interactively
9.2.36
restart-bind
9.2.37
restart-case
9.2.38
restart-name
9.2.39
with-condition-restarts
9.2.40
with-simple-restart
9.2.41
abort
9.2.42
continue
9.2.43
muffle-warning
9.2.44
store-value
9.2.45
use-value
10
Symbols
10.1
Symbol Concepts
10.2
Symbols Dictionary
10.2.1
symbol
10.2.2
keyword
10.2.3
symbolp
10.2.4
keywordp
10.2.5
make-symbol
10.2.6
copy-symbol
10.2.7
gensym
10.2.8
*gensym-counter*
10.2.9
gentemp
10.2.10
symbol-function
10.2.11
symbol-name
10.2.12
symbol-package
10.2.13
symbol-plist
10.2.14
symbol-value
10.2.15
get
10.2.16
remprop
10.2.17
boundp
10.2.18
makunbound
10.2.19
set
10.2.20
unbound-variable
11
Packages
11.1
Package Concepts
11.1.1
Introduction to Packages
11.1.1.1
Package Names and Nicknames
11.1.1.2
Symbols in a Package
11.1.1.3
Internal and External Symbols
11.1.1.4
Package Inheritance
11.1.1.5
Accessibility of Symbols in a Package
11.1.1.6
Locating a Symbol in a Package
11.1.1.7
Prevention of Name Conflicts in Packages
11.1.2
Standardized Packages
11.1.2.1
The COMMON-LISP Package
11.1.2.2
Constraints on the COMMON-LISP Package for Conforming Implementations
11.1.2.3
Constraints on the COMMON-LISP Package for Conforming Programs
11.1.2.4
Some Exceptions to Constraints on the COMMON-LISP Package for Conforming Programs
11.1.2.5
The COMMON-LISP-USER Package
11.1.2.6
The KEYWORD Package
11.1.2.7
Interning a Symbol in the KEYWORD Package
11.1.2.8
Notes about The KEYWORD Package
11.1.2.9
Implementation-Defined Packages
11.2
Packages Dictionary
11.2.1
package
11.2.2
export
11.2.3
find-symbol
11.2.4
find-package
11.2.5
find-all-symbols
11.2.6
import
11.2.7
list-all-packages
11.2.8
rename-package
11.2.9
shadow
11.2.10
shadowing-import
11.2.11
delete-package
11.2.12
make-package
11.2.13
with-package-iterator
11.2.14
unexport
11.2.15
unintern
11.2.16
in-package
11.2.17
unuse-package
11.2.18
use-package
11.2.19
defpackage
11.2.20
do-symbols
11.2.21
intern
11.2.22
package-name
11.2.23
package-nicknames
11.2.24
package-shadowing-symbols
11.2.25
package-use-list
11.2.26
package-used-by-list
11.2.27
packagep
11.2.28
*package*
11.2.29
package-error
11.2.30
package-error-package
12
Numbers (Numbers)
12.1
Number Concepts
12.1.1
Numeric Operations
12.1.1.1
Associativity and Commutativity in Numeric Operations
12.1.1.2
Examples of Associativity and Commutativity in Numeric Operations
12.1.1.3
Contagion in Numeric Operations
12.1.1.4
Viewing Integers as Bits and Bytes
12.1.1.5
Logical Operations on Integers
12.1.1.6
Byte Operations on Integers
12.1.2
Implementation-Dependent Numeric Constants
12.1.3
Rational Computations
12.1.3.1
Rule of Unbounded Rational Precision
12.1.3.2
Rule of Canonical Representation for Rationals
12.1.3.3
Rule of Float Substitutability
12.1.4
Floating-point Computations
12.1.4.1
Rule of Float and Rational Contagion
12.1.4.2
Examples of Rule of Float and Rational Contagion
12.1.4.3
Rule of Float Approximation
12.1.4.4
Rule of Float Underflow and Overflow
12.1.4.5
Rule of Float Precision Contagion
12.1.5
Complex Computations
12.1.5.1
Rule of Complex Substitutability
12.1.5.2
Rule of Complex Contagion
12.1.5.3
Rule of Canonical Representation for Complex Rationals
12.1.5.4
Examples of Rule of Canonical Representation for Complex Rationals
12.1.5.5
Principal Values and Branch Cuts
12.1.6
Interval Designators
12.1.7
Random-State Operations
12.2
Numbers Dictionary
12.2.1
number
12.2.2
complex (System Class)
12.2.3
real
12.2.4
float (System Class)
12.2.5
short-float
12.2.6
rational
12.2.7
ratio
12.2.8
integer
12.2.9
signed-byte
12.2.10
unsigned-byte
12.2.11
mod
12.2.12
bit
12.2.13
fixnum
12.2.14
bignum
12.2.15
=
12.2.16
max
12.2.17
minusp
12.2.18
zerop
12.2.19
floor
12.2.20
sin
12.2.21
asin
12.2.22
pi
12.2.23
sinh
12.2.24
*
12.2.25
+
12.2.26
-
12.2.27
/
12.2.28
1+
12.2.29
abs
12.2.30
evenp
12.2.31
exp
12.2.32
gcd
12.2.33
incf
12.2.34
lcm
12.2.35
log
12.2.37
signum
12.2.38
sqrt
12.2.39
random-state
12.2.40
make-random-state
12.2.41
random
12.2.42
random-state-p
12.2.43
*random-state*
12.2.44
numberp
12.2.45
cis
12.2.46
complex
12.2.47
complexp
12.2.48
conjugate
12.2.49
phase
12.2.50
realpart
12.2.51
upgraded-complex-part-type
12.2.52
realp
12.2.53
numerator
12.2.55
rationalp
12.2.56
ash
12.2.57
integer-length
12.2.58
integerp
12.2.59
parse-integer
12.2.60
boole
12.2.61
boole-1
12.2.62
logand
12.2.63
logbitp
12.2.64
logcount
12.2.65
logtest
12.2.66
byte
12.2.67
deposit-field
12.2.68
dpb
12.2.69
ldb
12.2.70
ldb-test
12.2.71
mask-field
12.2.72
most-positive-fixnum
12.2.73
decode-float
12.2.74
float
12.2.75
floatp
12.2.76
most-positive-short-float
12.2.77
short-float-epsilon
12.2.78
arithmetic-error
12.2.79
arithmetic-error-operands
12.2.80
division-by-zero
12.2.81
floating-point-invalid-operation
12.2.82
floating-point-inexact
12.2.83
floating-point-overflow
12.2.84
floating-point-underflow
13
Characters
13.1
Character Concepts
13.1.1
Introduction to Characters
13.1.2
Introduction to Scripts and Repertoires
13.1.2.1
Character Scripts
13.1.2.2
Character Repertoires
13.1.3
Character Attributes
13.1.4
Character Categories
13.1.4.1
Graphic Characters
13.1.4.2
Alphabetic Characters
13.1.4.3
Characters With Case
13.1.4.4
Uppercase Characters
13.1.4.5
Lowercase Characters
13.1.4.6
Corresponding Characters in the Other Case
13.1.4.7
Case of Implementation-Defined Characters
13.1.4.8
Numeric Characters
13.1.4.9
Alphanumeric Characters
13.1.4.10
Digits in a Radix
13.1.5
Identity of Characters
13.1.6
Ordering of Characters
13.1.7
Character Names
13.1.8
Treatment of Newline during Input and Output
13.1.9
Character Encodings
13.1.10
Documentation of Implementation-Defined Scripts
13.2
Characters Dictionary
13.2.1
character (System Class)
13.2.2
base-char
13.2.3
standard-char
13.2.4
extended-char
13.2.5
char=
13.2.6
character
13.2.7
characterp
13.2.8
alpha-char-p
13.2.9
alphanumericp
13.2.10
digit-char
13.2.11
digit-char-p
13.2.12
graphic-char-p
13.2.13
standard-char-p
13.2.14
char-upcase
13.2.15
upper-case-p
13.2.16
char-code
13.2.17
char-int
13.2.18
code-char
13.2.19
char-code-limit
13.2.20
char-name
13.2.21
name-char
14
Conses
14.1
Cons Concepts
14.1.1
Conses as Trees
14.1.1.1
General Restrictions on Parameters that must be Trees
14.1.2
Conses as Lists
14.1.2.1
Lists as Association Lists
14.1.2.2
Lists as Sets
14.1.2.3
General Restrictions on Parameters that must be Lists
14.2
Conses Dictionary
14.2.1
list
14.2.2
null (System Class)
14.2.3
cons (System Class)
14.2.4
atom (Type)
14.2.5
cons
14.2.6
consp
14.2.7
atom
14.2.8
rplaca
14.2.9
car
14.2.10
copy-tree
14.2.11
sublis
14.2.12
subst
14.2.13
tree-equal
14.2.14
copy-list
14.2.16
list-length
14.2.17
listp
14.2.18
make-list
14.2.19
push
14.2.20
pop
14.2.21
first
14.2.22
nth
14.2.23
endp
14.2.24
null
14.2.25
nconc
14.2.26
append
14.2.27
revappend
14.2.28
butlast
14.2.29
last
14.2.30
ldiff
14.2.31
nthcdr
14.2.32
rest
14.2.34
mapc
14.2.35
acons
14.2.36
assoc
14.2.37
copy-alist
14.2.38
pairlis
14.2.39
rassoc
14.2.40
get-properties
14.2.41
getf
14.2.42
remf
14.2.43
intersection
14.2.44
adjoin
14.2.45
pushnew
14.2.46
set-difference
14.2.47
set-exclusive-or
14.2.48
subsetp
14.2.49
union
15
Arrays
15.1
Array Concepts
15.1.1
Array Elements
15.1.1.1
Array Indices
15.1.1.2
Array Dimensions
15.1.1.3
Implementation Limits on Individual Array Dimensions
15.1.1.4
Array Rank
15.1.1.5
Vectors
15.1.1.6
Fill Pointers
15.1.1.7
Multidimensional Arrays
15.1.1.8
Storage Layout for Multidimensional Arrays
15.1.1.9
Implementation Limits on Array Rank
15.1.2
Specialized Arrays
15.1.2.1
Array Upgrading
15.1.2.2
Required Kinds of Specialized Arrays
15.2
Arrays Dictionary
15.2.1
array
15.2.2
simple-array
15.2.3
vector (System Class)
15.2.4
simple-vector
15.2.5
bit-vector
15.2.6
simple-bit-vector
15.2.7
make-array
15.2.8
adjust-array
15.2.9
adjustable-array-p
15.2.10
aref
15.2.11
array-dimension
15.2.12
array-dimensions
15.2.13
array-element-type
15.2.14
array-has-fill-pointer-p
15.2.15
array-displacement
15.2.16
array-in-bounds-p
15.2.17
array-rank
15.2.18
array-row-major-index
15.2.19
array-total-size
15.2.20
arrayp
15.2.21
fill-pointer
15.2.22
row-major-aref
15.2.23
upgraded-array-element-type
15.2.24
array-dimension-limit
15.2.25
array-rank-limit
15.2.26
array-total-size-limit
15.2.27
simple-vector-p
15.2.28
svref
15.2.29
vector
15.2.30
vector-pop
15.2.31
vector-push
15.2.32
vectorp
15.2.34
bit-and
15.2.35
bit-vector-p
15.2.36
simple-bit-vector-p
16
Strings
16.1
String Concepts
16.1.1
Implications of Strings Being Arrays
16.1.2
Subtypes of STRING
16.2
Strings Dictionary
16.2.1
string (System Class)
16.2.2
base-string
16.2.3
simple-string
16.2.4
simple-base-string
16.2.5
simple-string-p
16.2.6
char
16.2.7
string
16.2.8
string-upcase
16.2.9
string-trim
16.2.10
string=
16.2.11
stringp
16.2.12
make-string
17
Sequences
17.1
Sequence Concepts
17.1.1
General Restrictions on Parameters that must be Sequences
17.2
Rules about Test Functions
17.2.1
Satisfying a Two-Argument Test
17.2.1.1
Examples of Satisfying a Two-Argument Test
17.2.2
Satisfying a One-Argument Test
17.2.2.1
Examples of Satisfying a One-Argument Test
17.3
Sequences Dictionary
17.3.1
sequence
17.3.2
copy-seq
17.3.3
elt
17.3.4
fill
17.3.5
make-sequence
17.3.6
subseq
17.3.7
map
17.3.8
map-into
17.3.9
reduce
17.3.10
count
17.3.11
length
17.3.12
reverse
17.3.13
sort
17.3.14
find
17.3.15
position
17.3.16
search
17.3.17
mismatch
17.3.18
replace
17.3.19
substitute
17.3.20
concatenate
17.3.21
merge
17.3.22
remove
17.3.23
remove-duplicates
18
Hash Tables
18.1
Hash Table Concepts
18.1.1
Hash-Table Operations
18.1.2
Modifying Hash Table Keys
18.1.2.1
Visible Modification of Objects with respect to EQ and EQL
18.1.2.2
Visible Modification of Objects with respect to EQUAL
18.1.2.3
Visible Modification of Conses with respect to EQUAL
18.1.2.4
Visible Modification of Bit Vectors and Strings with respect to EQUAL
18.1.2.5
Visible Modification of Objects with respect to EQUALP
18.1.2.6
Visible Modification of Structures with respect to EQUALP
18.1.2.7
Visible Modification of Arrays with respect to EQUALP
18.1.2.8
Visible Modification of Hash Tables with respect to EQUALP
18.1.2.9
Visible Modifications by Language Extensions
18.2
Hash Tables Dictionary
18.2.1
hash-table
18.2.2
make-hash-table
18.2.3
hash-table-p
18.2.4
hash-table-count
18.2.5
hash-table-rehash-size
18.2.6
hash-table-rehash-threshold
18.2.7
hash-table-size
18.2.8
hash-table-test
18.2.9
gethash
18.2.10
remhash
18.2.11
maphash
18.2.12
with-hash-table-iterator
18.2.13
clrhash
18.2.14
sxhash
19
Filenames
19.1
Overview of Filenames
19.1.1
Namestrings as Filenames
19.1.2
Pathnames as Filenames
19.1.3
Parsing Namestrings Into Pathnames
19.2
Pathnames
19.2.1
Pathname Components
19.2.1.1
The Pathname Host Component
19.2.1.2
The Pathname Device Component
19.2.1.3
The Pathname Directory Component
19.2.1.4
The Pathname Name Component
19.2.1.5
The Pathname Type Component
19.2.1.6
The Pathname Version Component
19.2.2
Interpreting Pathname Component Values
19.2.2.1
Strings in Component Values
19.2.2.2
Special Characters in Pathname Components
19.2.2.3
Case in Pathname Components
19.2.2.4
Local Case in Pathname Components
19.2.2.5
Common Case in Pathname Components
19.2.2.6
Special Pathname Component Values
19.2.2.7
NIL as a Component Value
19.2.2.8
->WILD as a Component Value
19.2.2.9
->UNSPECIFIC as a Component Value
19.2.2.10
Relation between component values NIL and ->UNSPECIFIC
19.2.2.11
Restrictions on Wildcard Pathnames
19.2.2.12
Restrictions on Examining Pathname Components
19.2.2.13
Restrictions on Examining a Pathname Host Component
19.2.2.14
Restrictions on Examining a Pathname Device Component
19.2.2.15
Restrictions on Examining a Pathname Directory Component
19.2.2.16
Directory Components in Non-Hierarchical File Systems
19.2.2.17
Restrictions on Examining a Pathname Name Component
19.2.2.18
Restrictions on Examining a Pathname Type Component
19.2.2.19
Restrictions on Examining a Pathname Version Component
19.2.2.20
Notes about the Pathname Version Component
19.2.2.21
Restrictions on Constructing Pathnames
19.2.3
Merging Pathnames
19.2.3.1
Examples of Merging Pathnames
19.3
Logical Pathnames
19.3.1
Syntax of Logical Pathname Namestrings
19.3.1.1
Additional Information about Parsing Logical Pathname Namestrings
19.3.1.2
The Host part of a Logical Pathname Namestring
19.3.1.3
The Device part of a Logical Pathname Namestring
19.3.1.4
The Directory part of a Logical Pathname Namestring
19.3.1.5
The Type part of a Logical Pathname Namestring
19.3.1.6
The Version part of a Logical Pathname Namestring
19.3.1.7
Wildcard Words in a Logical Pathname Namestring
19.3.1.8
Lowercase Letters in a Logical Pathname Namestring
19.3.1.9
Other Syntax in a Logical Pathname Namestring
19.3.2
Logical Pathname Components
19.3.2.1
Unspecific Components of a Logical Pathname
19.3.2.2
Null Strings as Components of a Logical Pathname
19.4
Filenames Dictionary
19.4.1
pathname (System Class)
19.4.2
logical-pathname (System Class)
19.4.3
pathname
19.4.4
make-pathname
19.4.5
pathnamep
19.4.6
pathname-host
19.4.7
load-logical-pathname-translations
19.4.8
logical-pathname-translations
19.4.9
logical-pathname
19.4.10
*default-pathname-defaults*
19.4.11
namestring
19.4.12
parse-namestring
19.4.13
wild-pathname-p
19.4.14
pathname-match-p
19.4.15
translate-logical-pathname
19.4.16
translate-pathname
19.4.17
merge-pathnames
20
Files
20.1
File System Concepts
20.1.1
Coercion of Streams to Pathnames
20.1.2
File Operations on Open and Closed Streams
20.1.3
Truenames
20.1.3.1
Examples of Truenames
20.2
Files Dictionary
20.2.1
directory
20.2.2
probe-file
20.2.3
ensure-directories-exist
20.2.4
truename
20.2.5
file-author
20.2.6
file-write-date
20.2.7
rename-file
20.2.8
delete-file
20.2.9
file-error
20.2.10
file-error-pathname
21
Streams
21.1
Stream Concepts
21.1.1
Introduction to Streams
21.1.1.1
Abstract Classifications of Streams (Introduction to Streams)
21.1.1.2
Input
21.1.1.3
Open and Closed Streams
21.1.1.4
Interactive Streams
21.1.1.5
Abstract Classifications of Streams
21.1.1.6
File Streams
21.1.1.7
Other Subclasses of Stream
21.1.2
Stream Variables
21.1.3
Stream Arguments to Standardized Functions
21.1.4
Restrictions on Composite Streams
21.2
Streams Dictionary
21.2.1
stream
21.2.2
broadcast-stream
21.2.3
concatenated-stream
21.2.4
echo-stream
21.2.5
file-stream
21.2.6
string-stream
21.2.7
synonym-stream
21.2.8
two-way-stream
21.2.9
input-stream-p
21.2.10
interactive-stream-p
21.2.11
open-stream-p
21.2.12
stream-element-type
21.2.13
streamp
21.2.14
read-byte
21.2.15
write-byte
21.2.16
peek-char
21.2.17
read-char
21.2.18
read-char-no-hang
21.2.19
terpri
21.2.20
unread-char
21.2.21
write-char
21.2.22
read-line
21.2.23
write-string
21.2.24
read-sequence
21.2.25
write-sequence
21.2.26
file-length
21.2.27
file-position
21.2.28
file-string-length
21.2.29
open
21.2.30
stream-external-format
21.2.31
with-open-file
21.2.32
close
21.2.33
with-open-stream
21.2.34
listen
21.2.35
clear-input
21.2.36
finish-output
21.2.37
y-or-n-p
21.2.38
make-synonym-stream
21.2.39
synonym-stream-symbol
21.2.40
broadcast-stream-streams
21.2.41
make-broadcast-stream
21.2.42
make-two-way-stream
21.2.43
two-way-stream-input-stream
21.2.44
echo-stream-input-stream
21.2.45
make-echo-stream
21.2.46
concatenated-stream-streams
21.2.47
make-concatenated-stream
21.2.48
get-output-stream-string
21.2.49
make-string-input-stream
21.2.50
make-string-output-stream
21.2.51
with-input-from-string
21.2.52
with-output-to-string
21.2.53
*debug-io*
21.2.54
*terminal-io*
21.2.55
stream-error
21.2.56
stream-error-stream
21.2.57
end-of-file
22
Printer
22.1
The Lisp Printer
22.1.1
Overview of The Lisp Printer
22.1.1.1
Multiple Possible Textual Representations
22.1.1.2
Printer Escaping
22.1.2
Printer Dispatching
22.1.3
Default Print-Object Methods
22.1.3.1
Printing Numbers
22.1.3.2
Printing Integers
22.1.3.3
Printing Ratios
22.1.3.4
Printing Floats
22.1.3.5
Printing Complexes
22.1.3.6
Note about Printing Numbers
22.1.3.7
Printing Characters
22.1.3.8
Printing Symbols
22.1.3.9
Package Prefixes for Symbols
22.1.3.10
Effect of Readtable Case on the Lisp Printer
22.1.3.11
Examples of Effect of Readtable Case on the Lisp Printer
22.1.3.12
Printing Strings
22.1.3.13
Printing Lists and Conses
22.1.3.14
Printing Bit Vectors
22.1.3.15
Printing Other Vectors
22.1.3.16
Printing Other Arrays
22.1.3.17
Examples of Printing Arrays
22.1.3.18
Printing Random States
22.1.3.19
Printing Pathnames
22.1.3.20
Printing Structures
22.1.3.21
Printing Other Objects
22.1.4
Examples of Printer Behavior
22.2
The Lisp Pretty Printer
22.2.1
Pretty Printer Concepts
22.2.1.1
Dynamic Control of the Arrangement of Output
22.2.1.2
Format Directive Interface
22.2.1.3
Compiling Format Strings
22.2.1.4
Pretty Print Dispatch Tables
22.2.1.5
Pretty Printer Margins
22.2.2
Examples of using the Pretty Printer
22.2.3
Notes about the Pretty Printer's Background
22.3
Formatted Output
22.3.1
FORMAT Basic Output
22.3.1.1
Tilde C-> Character
22.3.1.2
Tilde Percent-> Newline
22.3.1.3
Tilde Ampersand-> Fresh-Line
22.3.1.4
Tilde Vertical-Bar-> Page
22.3.1.5
Tilde Tilde-> Tilde
22.3.2
FORMAT Radix Control
22.3.2.1
Tilde R-> Radix
22.3.2.2
Tilde D-> Decimal
22.3.2.3
Tilde B-> Binary
22.3.2.4
Tilde O-> Octal
22.3.2.5
Tilde X-> Hexadecimal
22.3.3
FORMAT Floating-Point Printers
22.3.3.1
Tilde F-> Fixed-Format Floating-Point
22.3.3.2
Tilde E-> Exponential Floating-Point
22.3.3.3
Tilde G-> General Floating-Point
22.3.3.4
Tilde Dollarsign-> Monetary Floating-Point
22.3.4
FORMAT Printer Operations
22.3.4.1
Tilde A-> Aesthetic
22.3.4.2
Tilde S-> Standard
22.3.4.3
Tilde W-> Write
22.3.5
FORMAT Pretty Printer Operations
22.3.5.1
Tilde Underscore-> Conditional Newline
22.3.5.2
Tilde Less-Than-Sign-> Logical Block
22.3.5.3
Tilde I-> Indent
22.3.5.4
Tilde Slash-> Call Function
22.3.6
FORMAT Layout Control
22.3.6.1
Tilde T-> Tabulate
22.3.6.2
Tilde Less-Than-Sign-> Justification
22.3.6.3
Tilde Greater-Than-Sign-> End of Justification
22.3.7
FORMAT Control-Flow Operations
22.3.7.1
Tilde Asterisk-> Go-To
22.3.7.2
Tilde Left-Bracket-> Conditional Expression
22.3.7.3
Tilde Right-Bracket-> End of Conditional Expression
22.3.7.4
Tilde Left-Brace-> Iteration
22.3.7.5
Tilde Right-Brace-> End of Iteration
22.3.7.6
Tilde Question-Mark-> Recursive Processing
22.3.8
FORMAT Miscellaneous Operations
22.3.8.1
Tilde Left-Paren-> Case Conversion
22.3.8.2
Tilde Right-Paren-> End of Case Conversion
22.3.8.3
Tilde P-> Plural
22.3.9
FORMAT Miscellaneous Pseudo-Operations
22.3.9.1
Tilde Semicolon-> Clause Separator
22.3.9.2
Tilde Circumflex-> Escape Upward
22.3.9.3
Tilde Newline-> Ignored Newline
22.3.10
Additional Information about FORMAT Operations
22.3.10.1
Nesting of FORMAT Operations
22.3.10.2
Missing and Additional FORMAT Arguments
22.3.10.3
Additional FORMAT Parameters
22.3.10.4
Undefined FORMAT Modifier Combinations
22.3.11
Examples of FORMAT
22.3.12
Notes about FORMAT
22.4
Printer Dictionary
22.4.1
copy-pprint-dispatch
22.4.2
formatter
22.4.3
pprint-dispatch
22.4.4
pprint-exit-if-list-exhausted
22.4.5
pprint-fill
22.4.6
pprint-indent
22.4.7
pprint-logical-block
22.4.8
pprint-newline
22.4.9
pprint-pop
22.4.10
pprint-tab
22.4.11
print-object
22.4.12
print-unreadable-object
22.4.13
set-pprint-dispatch
22.4.14
write
22.4.15
write-to-string
22.4.16
*print-array*
22.4.17
*print-base*
22.4.18
*print-case*
22.4.19
*print-circle*
22.4.20
*print-escape*
22.4.21
*print-gensym*
22.4.22
*print-level*
22.4.23
*print-lines*
22.4.24
*print-miser-width*
22.4.25
*print-pprint-dispatch*
22.4.26
*print-pretty*
22.4.27
*print-readably*
22.4.28
*print-right-margin*
22.4.29
print-not-readable
22.4.30
print-not-readable-object
22.4.31
format
23
Reader
23.1
Reader Concepts
23.1.1
Dynamic Control of the Lisp Reader
23.1.2
Effect of Readtable Case on the Lisp Reader
23.1.2.1
Examples of Effect of Readtable Case on the Lisp Reader
23.1.3
Argument Conventions of Some Reader Functions
23.1.3.1
The EOF-ERROR-P argument
23.1.3.2
The RECURSIVE-P argument
23.2
Reader Dictionary
23.2.1
readtable
23.2.2
copy-readtable
23.2.3
make-dispatch-macro-character
23.2.4
read
23.2.5
read-delimited-list
23.2.6
read-from-string
23.2.7
readtable-case
23.2.8
readtablep
23.2.9
set-dispatch-macro-character
23.2.10
set-macro-character
23.2.11
set-syntax-from-char
23.2.12
with-standard-io-syntax
23.2.13
*read-base*
23.2.14
*read-default-float-format*
23.2.15
*read-eval*
23.2.16
*read-suppress*
23.2.17
*readtable*
23.2.18
reader-error
24
System Construction
24.1
System Construction Concepts
24.1.1
Loading
24.1.2
Features
24.1.2.1
Feature Expressions
24.1.2.2
Examples of Feature Expressions
24.2
System Construction Dictionary
24.2.1
compile-file
24.2.2
compile-file-pathname
24.2.3
load
24.2.4
with-compilation-unit
24.2.5
*features*
24.2.6
*compile-file-pathname*
24.2.7
*load-pathname*
24.2.8
*compile-print*
24.2.9
*load-print*
24.2.10
*modules*
24.2.11
provide
25
Environment
25.1
The External Environment
25.1.1
Top level loop
25.1.2
Debugging Utilities
25.1.3
Environment Inquiry
25.2
Environment Dictionary
25.2.1
decode-universal-time
25.2.2
encode-universal-time
25.2.3
get-universal-time
25.2.4
sleep
25.2.5
apropos
25.2.6
describe
25.2.7
describe-object
25.2.8
trace
25.2.9
step
25.2.10
time
25.1.4.1
Decoded Time
25.1.4.2
Universal Time
25.1.4.3
Internal Time
25.1.4.4
Seconds
25.2.11
internal-time-units-per-second
25.2.12
get-internal-real-time
25.2.13
get-internal-run-time
25.2.14
disassemble
25.2.15
documentation
25.2.16
room
25.2.17
ed
25.2.18
inspect
25.2.19
dribble
25.2.24
lisp-implementation-type
25.2.25
short-site-name
25.2.26
machine-instance
25.2.27
machine-type
25.2.28
machine-version
25.2.29
software-type
25.2.30
user-homedir-pathname
26
Glossary (Glossary)
26.1
Glossary
27
Appendix
27.1
Removed Language Features
27.1.1
Requirements for removed and deprecated features
27.1.2
Removed Types
27.1.3
Removed Operators
27.1.4
Removed Argument Conventions
27.1.5
Removed Variables
27.1.6
Removed Reader Syntax
27.1.7
Packages No Longer Required
Index
-
-
Introduction
Common Lisp CommunitySpec (CLCS)
A rendition of the Common Lisp ANSI Specification draft.
Overview
Introduction
Syntax
Evaluation and Compilation
Types and Classes
Data and Control Flow
Iteration
Objects
Structures
Conditions
Symbols
Packages
Numbers (Numbers)
Characters
Conses
Arrays
Strings
Sequences
Hash Tables
Filenames
Files
Streams
Printer
Reader
System Construction
Environment
Glossary (Glossary)
Appendix
Introduction
Scope
Organization of the Document
Referenced Publications
Definitions
Conformance
Language Extensions
Language Subsets
Deprecated Language Features
Symbols in the COMMON-LISP Package
Scope, Purpose, and History
Scope and Purpose
History
Definitions
Notational Conventions
Error Terminology
Sections Not Formally Part Of This Standard
Interpreting Dictionary Entries
Notational Conventions
Font Key
Modified BNF Syntax
Splicing in Modified BNF Syntax
Indirection in Modified BNF Syntax
Additional Uses for Indirect Definitions in Modified BNF Syntax
Special Symbols
Objects with Multiple Notations
Case in Symbols
Numbers (Objects with Multiple Notations)
Use of the Dot Character
NIL
Designators
Nonsense Words
Interpreting Dictionary Entries
The "Affected By" Section of a Dictionary Entry
The "Arguments" Section of a Dictionary Entry
The "Arguments and Values" Section of a Dictionary Entry
The "Binding Types Affected" Section of a Dictionary Entry
The "Class Precedence List" Section of a Dictionary Entry
Dictionary Entries for Type Specifiers
The "Compound Type Specifier Kind" Section of a Dictionary Entry
The "Compound Type Specifier Syntax" Section of a Dictionary Entry
The "Compound Type Specifier Arguments" Section of a Dictionary Entry
The "Compound Type Specifier Description" Section of a Dictionary Entry
The "Constant Value" Section of a Dictionary Entry
The "Description" Section of a Dictionary Entry
The "Examples" Section of a Dictionary Entry
The "Exceptional Situations" Section of a Dictionary Entry
The "Initial Value" Section of a Dictionary Entry
The "Argument Precedence Order" Section of a Dictionary Entry
The "Method Signature" Section of a Dictionary Entry
The "Name" Section of a Dictionary Entry
The "Notes" Section of a Dictionary Entry
The "Pronunciation" Section of a Dictionary Entry
The "See Also" Section of a Dictionary Entry
The "Side Effects" Section of a Dictionary Entry
The "Supertypes" Section of a Dictionary Entry
The "Syntax" Section of a Dictionary Entry
Special "Syntax" Notations for Overloaded Operators
Naming Conventions for Rest Parameters
Requiring Non-Null Rest Parameters in the "Syntax" Section
Return values in the "Syntax" Section
No Arguments or Values in the "Syntax" Section
Unconditional Transfer of Control in the "Syntax" Section
The "Valid Context" Section of a Dictionary Entry
The "Value Type" Section of a Dictionary Entry
Conformance
Conforming Implementations
Conforming Programs
Conforming Implementations
Required Language Features
Documentation of Implementation-Dependent Features
Documentation of Extensions
Treatment of Exceptional Situations
Resolution of Apparent Conflicts in Exceptional Situations
Examples of Resolution of Apparent Conflict in Exceptional Situations
Conformance Statement
Conforming Programs
Use of Implementation-Defined Language Features
Use of Read-Time Conditionals
Deprecated Language Features
Deprecated Functions
Deprecated Argument Conventions
Deprecated Variables
Deprecated Reader Syntax
Syntax
Character Syntax
Reader Algorithm
Interpretation of Tokens
Standard Macro Characters
Character Syntax
Readtables
Variables that affect the Lisp Reader
Standard Characters
Character Syntax Types
Readtables
The Current Readtable
The Standard Readtable
The Initial Readtable
Character Syntax Types
Constituent Characters
Constituent Traits
Invalid Characters
Macro Characters
Multiple Escape Characters
Examples of Multiple Escape Characters
Single Escape Character
Examples of Single Escape Characters
Whitespace Characters
Examples of Whitespace Characters
Interpretation of Tokens
Numbers as Tokens
Constructing Numbers from Tokens
The Consing Dot
Symbols as Tokens
Valid Patterns for Tokens
Package System Consistency Rules
Numbers as Tokens
Potential Numbers as Tokens
Escape Characters and Potential Numbers
Examples of Potential Numbers
Constructing Numbers from Tokens
Syntax of a Rational
Syntax of an Integer
Syntax of a Ratio
Syntax of a Float
Syntax of a Complex
Standard Macro Characters
Left-Parenthesis
Right-Parenthesis
Single-Quote
Semicolon
Double-Quote
Backquote
Comma
Sharpsign
Re-Reading Abbreviated Expressions
Single-Quote
Examples of Single-Quote
Semicolon
Examples of Semicolon
Notes about Style for Semicolon
Use of Single Semicolon
Use of Double Semicolon
Use of Triple Semicolon
Use of Quadruple Semicolon
Examples of Style for Semicolon
Backquote
Notes about Backquote
Sharpsign
Sharpsign Backslash
Sharpsign Single-Quote
Sharpsign Left-Parenthesis
Sharpsign Asterisk
Examples of Sharpsign Asterisk
Sharpsign Colon
Sharpsign Dot
Sharpsign B
Sharpsign O
Sharpsign X
Sharpsign R
Sharpsign C
Sharpsign A
Sharpsign S
Sharpsign P
Sharpsign Equal-Sign
Sharpsign Sharpsign
Sharpsign Plus
Sharpsign Minus
Sharpsign Vertical-Bar
Examples of Sharpsign Vertical-Bar
Notes about Style for Sharpsign Vertical-Bar
Sharpsign Less-Than-Sign
Sharpsign Whitespace
Sharpsign Right-Parenthesis
Evaluation and Compilation
Evaluation
Compilation
Declarations
Lambda Lists
Error Checking in Function Calls
Traversal Rules and Side Effects
Destructive Operations
Evaluation and Compilation Dictionary
Evaluation
Introduction to Environments
The Evaluation Model
Lambda Expressions
Closures and Lexical Binding
Shadowing
Extent
Return Values
Introduction to Environments
The Global Environment
Dynamic Environments
Lexical Environments
The Null Lexical Environment
Environment Objects
The Evaluation Model
Form Evaluation
Symbols as Forms
Lexical Variables
Dynamic Variables
Constant Variables
Symbols Naming Both Lexical and Dynamic Variables
Conses as Forms
Special Forms
Macro Forms
Function Forms
Lambda Forms
Self-Evaluating Objects
Examples of Self-Evaluating Objects
Compilation
Compiler Terminology
Compilation Semantics
File Compilation
Literal Objects in Compiled Files
Exceptional Situations in the Compiler
Compilation Semantics
Compiler Macros
Purpose of Compiler Macros
Naming of Compiler Macros
When Compiler Macros Are Used
Notes about the Implementation of Compiler Macros
Minimal Compilation
Semantic Constraints
File Compilation
Processing of Top Level Forms
Processing of Defining Macros
Constraints on Macros and Compiler Macros
Literal Objects in Compiled Files
Externalizable Objects
Similarity of Literal Objects
Similarity of Aggregate Objects
Definition of Similarity
Extensions to Similarity Rules
Additional Constraints on Externalizable Objects
Declarations
Minimal Declaration Processing Requirements
Declaration Specifiers
Declaration Identifiers
Declaration Scope
Declaration Identifiers
Shorthand notation for Type Declarations
Declaration Scope
Examples of Declaration Scope
Lambda Lists
Ordinary Lambda Lists
Generic Function Lambda Lists
Specialized Lambda Lists
Macro Lambda Lists
Destructuring Lambda Lists
Boa Lambda Lists
Defsetf Lambda Lists
Deftype Lambda Lists
Define-modify-macro Lambda Lists
Define-method-combination Arguments Lambda Lists
Syntactic Interaction of Documentation Strings and Declarations
Ordinary Lambda Lists
Specifiers for the required parameters
Specifiers for optional parameters
A specifier for a rest parameter
Specifiers for keyword parameters
Suppressing Keyword Argument Checking
Examples of Suppressing Keyword Argument Checking
Specifiers for
&aux
variables
Examples of Ordinary Lambda Lists
Macro Lambda Lists
Destructuring by Lambda Lists
Data-directed Destructuring by Lambda Lists
Examples of Data-directed Destructuring by Lambda Lists
Lambda-list-directed Destructuring by Lambda Lists
Error Checking in Function Calls
Argument Mismatch Detection
Argument Mismatch Detection
Safe and Unsafe Calls
Error Detection Time in Safe Calls
Too Few Arguments
Too Many Arguments
Unrecognized Keyword Arguments
Invalid Keyword Arguments
Odd Number of Keyword Arguments
Destructuring Mismatch
Errors When Calling a Next Method
Destructive Operations
Modification of Literal Objects
Transfer of Control during a Destructive Operation
Transfer of Control during a Destructive Operation
Examples of Transfer of Control during a Destructive Operation
Evaluation and Compilation Dictionary
lambda (Symbol)
lambda
compile
eval
eval-when
load-time-value
quote
compiler-macro-function
define-compiler-macro
defmacro
macro-function
macroexpand
define-symbol-macro
symbol-macrolet
*macroexpand-hook*
proclaim
declaim
declare
ignore
dynamic-extent
type
inline
ftype
declaration
optimize
special
locally
the
special-operator-p
constantp
Types and Classes
Introduction (Types and Classes)
Types
Classes
Types and Classes Dictionary
Types
Data Type Definition
Type Relationships
Type Specifiers
Classes
Introduction to Classes
Defining Classes
Creating Instances of Classes
Inheritance
Determining the Class Precedence List
Redefining Classes
Integrating Types and Classes
Introduction to Classes
Standard Metaclasses
Inheritance
Examples of Inheritance
Inheritance of Class Options
Determining the Class Precedence List
Topological Sorting
Examples of Class Precedence List Determination
Redefining Classes
Modifying the Structure of Instances
Initializing Newly Added Local Slots (Redefining Classes)
Customizing Class Redefinition
Types and Classes Dictionary
nil (Type)
boolean
function (System Class)
compiled-function
generic-function
standard-generic-function
class
built-in-class
structure-class
standard-class
method
standard-method
structure-object
standard-object
method-combination
t (System Class)
satisfies
member
not (Type Specifier)
and (Type Specifier)
or (Type Specifier)
values (Type Specifier)
eql (Type Specifier)
coerce
deftype
subtypep
type-of
typep
type-error
type-error-datum
simple-type-error
Data and Control Flow
Generalized Reference
Transfer of Control to an Exit Point
Data and Control Flow Dictionary
Generalized Reference
Overview of Places and Generalized Reference
Kinds of Places
Treatment of Other Macros Based on SETF
Overview of Places and Generalized Reference
Evaluation of Subforms to Places
Examples of Evaluation of Subforms to Places
Setf Expansions
Examples of Setf Expansions
Kinds of Places
Variable Names as Places
Function Call Forms as Places
VALUES Forms as Places
THE Forms as Places
APPLY Forms as Places
Setf Expansions and Places
Macro Forms as Places
Symbol Macros as Places
Other Compound Forms as Places
Data and Control Flow Dictionary
apply
defun
fdefinition
fboundp
fmakunbound
flet
funcall
function (Special Operator)
function-lambda-expression
functionp
compiled-function-p
call-arguments-limit
lambda-list-keywords
lambda-parameters-limit
defconstant
defparameter
destructuring-bind
let
progv
setq
psetq
block
catch
go
return-from
return
tagbody
throw
unwind-protect
nil
not
t
eq
eql
equal
equalp
identity
complement
constantly
every
and
cond
if
or
when
case
typecase
multiple-value-bind
multiple-value-call
multiple-value-list
multiple-value-prog1
multiple-value-setq
values
values-list
multiple-values-limit
nth-value
prog
prog1
progn
define-modify-macro
defsetf
define-setf-expander
get-setf-expansion
setf
shiftf
rotatef
control-error
program-error
undefined-function
Iteration
The LOOP Facility
Iteration Dictionary
The LOOP Facility
Overview of the Loop Facility
Variable Initialization and Stepping Clauses
Value Accumulation Clauses
Termination Test Clauses
Unconditional Execution Clauses
Conditional Execution Clauses
Miscellaneous Clauses
Examples of Miscellaneous Loop Features
Notes about Loop
Overview of the Loop Facility
Simple vs Extended Loop
Simple Loop
Extended Loop
Loop Keywords
Parsing Loop Clauses
Expanding Loop Forms
Summary of Loop Clauses
Summary of Variable Initialization and Stepping Clauses
Summary of Value Accumulation Clauses
Summary of Termination Test Clauses
Summary of Unconditional Execution Clauses
Summary of Conditional Execution Clauses
Summary of Miscellaneous Clauses
Order of Execution
Destructuring
Restrictions on Side-Effects
Variable Initialization and Stepping Clauses
Iteration Control
The for-as-arithmetic subclause
Examples of for-as-arithmetic subclause
The for-as-in-list subclause
Examples of for-as-in-list subclause
The for-as-on-list subclause
Examples of for-as-on-list subclause
The for-as-equals-then subclause
Examples of for-as-equals-then subclause
The for-as-across subclause
Examples of for-as-across subclause
The for-as-hash subclause
The for-as-package subclause
Examples of for-as-package subclause
Local Variable Initializations
Examples of WITH clause
Value Accumulation Clauses
Examples of COLLECT clause
Examples of APPEND and NCONC clauses
Examples of COUNT clause
Examples of MAXIMIZE and MINIMIZE clauses
Examples of SUM clause
Termination Test Clauses
Examples of REPEAT clause
Examples of ALWAYS
Examples of WHILE and UNTIL clauses
Unconditional Execution Clauses
Examples of unconditional execution
Conditional Execution Clauses
Examples of WHEN clause
Miscellaneous Clauses
Control Transfer Clauses
Examples of NAMED clause
Initial and Final Execution
Examples of Miscellaneous Loop Features
Examples of clause grouping
Iteration Dictionary
do
dotimes
dolist
loop
loop-finish
Objects
Object Creation and Initialization
Changing the Class of an Instance
Reinitializing an Instance
Meta-Objects
Slots
Generic Functions and Methods
Objects Dictionary
Object Creation and Initialization
Initialization Arguments
Declaring the Validity of Initialization Arguments
Defaulting of Initialization Arguments
Rules for Initialization Arguments
shared-initialize
Initialize-Instance
Definitions of Make-Instance and Initialize-Instance
Changing the Class of an Instance
Modifying the Structure of the Instance
Initializing Newly Added Local Slots (Changing the Class of an Instance)
Customizing the Change of Class of an Instance
Reinitializing an Instance
Customizing Reinitialization
Meta-Objects
Standard Meta-objects
Slots
Introduction to Slots
Accessing Slots
Inheritance of Slots and Slot Options
Generic Functions and Methods
Introduction to Generic Functions
Introduction to Methods
Agreement on Parameter Specializers and Qualifiers
Congruent Lambda-lists for all Methods of a Generic Function
Keyword Arguments in Generic Functions and Methods
Method Selection and Combination
Inheritance of Methods
Keyword Arguments in Generic Functions and Methods
Examples of Keyword Arguments in Generic Functions and Methods
Method Selection and Combination
Determining the Effective Method
Selecting the Applicable Methods
Sorting the Applicable Methods by Precedence Order
Applying method combination to the sorted list of applicable methods
Standard Method Combination
Declarative Method Combination
Built-in Method Combination Types
Objects Dictionary
function-keywords
ensure-generic-function
allocate-instance
reinitialize-instance
shared-initialize
update-instance-for-different-class
update-instance-for-redefined-class
change-class
slot-boundp
slot-exists-p
slot-makunbound
slot-missing
slot-unbound
slot-value
method-qualifiers
no-applicable-method
no-next-method
remove-method
make-instance
make-instances-obsolete
make-load-form
make-load-form-saving-slots
with-accessors
with-slots
defclass
defgeneric
defmethod
find-class
next-method-p
call-method
call-next-method
compute-applicable-methods
define-method-combination
find-method
add-method
initialize-instance
class-name
(setf class-name)
class-of
unbound-slot
unbound-slot-instance
Structures
Structures Dictionary
Structures Dictionary
defstruct
copy-structure
Conditions
Condition System Concepts
Conditions Dictionary
Condition System Concepts
Condition Types
Creating Conditions
Printing Conditions
Signaling and Handling Conditions
Assertions
Notes about the Condition System's Background
Condition Types
Serious Conditions
Creating Conditions
Condition Designators
Printing Conditions
Recommended Style in Condition Reporting
Capitalization and Punctuation in Condition Reports
Leading and Trailing Newlines in Condition Reports
Embedded Newlines in Condition Reports
Note about Tabs in Condition Reports
Mentioning Containing Function in Condition Reports
Signaling and Handling Conditions
Signaling
Resignaling a Condition
Restarts
Interactive Use of Restarts
Interfaces to Restarts
Restart Tests
Associating a Restart with a Condition
Conditions Dictionary
condition
warning
style-warning
serious-condition
error (Condition Type)
cell-error
cell-error-name
parse-error
storage-condition
assert
error
cerror
check-type
simple-error
invalid-method-error
method-combination-error
signal
simple-condition
simple-condition-format-control
warn
simple-warning
invoke-debugger
break
*debugger-hook*
*break-on-signals*
handler-bind
handler-case
ignore-errors
define-condition
make-condition
restart
compute-restarts
find-restart
invoke-restart
invoke-restart-interactively
restart-bind
restart-case
restart-name
with-condition-restarts
with-simple-restart
abort
continue
muffle-warning
store-value
use-value
abort
Symbols
Symbol Concepts
Symbols Dictionary
Symbols Dictionary
symbol
keyword
symbolp
keywordp
make-symbol
copy-symbol
gensym
*gensym-counter*
gentemp
symbol-function
symbol-name
symbol-package
symbol-plist
symbol-value
get
remprop
boundp
makunbound
set
unbound-variable
Packages
Package Concepts
Packages Dictionary
Package Concepts
Introduction to Packages
Standardized Packages
Introduction to Packages
Package Names and Nicknames
Symbols in a Package
Internal and External Symbols
Package Inheritance
Accessibility of Symbols in a Package
Locating a Symbol in a Package
Prevention of Name Conflicts in Packages
Standardized Packages
The COMMON-LISP Package
Constraints on the COMMON-LISP Package for Conforming Implementations
Constraints on the COMMON-LISP Package for Conforming Programs
Some Exceptions to Constraints on the COMMON-LISP Package for Conforming Programs
The COMMON-LISP-USER Package
The KEYWORD Package
Interning a Symbol in the KEYWORD Package
Notes about The KEYWORD Package
Implementation-Defined Packages
Packages Dictionary
package
export
find-symbol
find-package
find-all-symbols
import
list-all-packages
rename-package
shadow
shadowing-import
delete-package
make-package
with-package-iterator
unexport
unintern
in-package
unuse-package
use-package
defpackage
do-symbols
intern
package-name
package-nicknames
package-shadowing-symbols
package-use-list
package-used-by-list
packagep
*package*
package-error
package-error-package
Numbers
Number Concepts
Numbers Dictionary
Number Concepts
Numeric Operations
Implementation-Dependent Numeric Constants
Rational Computations
Floating-point Computations
Complex Computations
Interval Designators
Random-State Operations
Numeric Operations
Associativity and Commutativity in Numeric Operations
Examples of Associativity and Commutativity in Numeric Operations
Contagion in Numeric Operations
Viewing Integers as Bits and Bytes
Logical Operations on Integers
Byte Operations on Integers
Rational Computations
Rule of Unbounded Rational Precision
Rule of Canonical Representation for Rationals
Rule of Float Substitutability
Floating-point Computations
Rule of Float and Rational Contagion
Examples of Rule of Float and Rational Contagion
Rule of Float Approximation
Rule of Float Underflow and Overflow
Rule of Float Precision Contagion
Complex Computations
Rule of Complex Substitutability
Rule of Complex Contagion
Rule of Canonical Representation for Complex Rationals
Examples of Rule of Canonical Representation for Complex Rationals
Principal Values and Branch Cuts
Numbers Dictionary
number
complex (System Class)
real
float (System Class)
short-float
rational
ratio
integer
signed-byte
unsigned-byte
mod
bit
fixnum
bignum
=
max
minusp
zerop
floor
sin
asin
pi
sinh
*
+
-
/
1+
abs
evenp
exp
gcd
incf
lcm
log
mod
signum
sqrt
random-state
make-random-state
random
random-state-p
*random-state*
numberp
cis
complex
complexp
conjugate
phase
realpart
upgraded-complex-part-type
realp
numerator
rational
rationalp
ash
integer-length
integerp
parse-integer
boole
boole-1
logand
logbitp
logcount
logtest
byte
deposit-field
dpb
ldb
ldb-test
mask-field
most-positive-fixnum
decode-float
float
floatp
most-positive-short-float
short-float-epsilon
arithmetic-error
arithmetic-error-operands
division-by-zero
floating-point-invalid-operation
floating-point-inexact
floating-point-overflow
floating-point-underflow
Characters
Character Concepts
Characters Dictionary
Character Concepts
Introduction to Characters
Introduction to Scripts and Repertoires
Character Attributes
Character Categories
Identity of Characters
Ordering of Characters
Character Names
Treatment of Newline during Input and Output
Character Encodings
Documentation of Implementation-Defined Scripts
Introduction to Scripts and Repertoires
Character Scripts
Character Repertoires
Character Categories
Graphic Characters
Alphabetic Characters
Characters With Case
Uppercase Characters
Lowercase Characters
Corresponding Characters in the Other Case
Case of Implementation-Defined Characters
Numeric Characters
Alphanumeric Characters
Digits in a Radix
Characters Dictionary
character (System Class)
base-char
standard-char
extended-char
char=
character
characterp
alpha-char-p
alphanumericp
digit-char
digit-char-p
graphic-char-p
standard-char-p
char-upcase
upper-case-p
char-code
char-int
code-char
char-code-limit
char-name
name-char
Conses
Cons Concepts
Conses Dictionary
Cons Concepts
Conses as Trees
Conses as Lists
Conses as Trees
General Restrictions on Parameters that must be Trees
Conses as Lists
Lists as Association Lists
Lists as Sets
General Restrictions on Parameters that must be Lists
Conses Dictionary
list
null (System Class)
cons (System Class)
atom (Type)
cons
consp
atom
rplaca
car
copy-tree
sublis
subst
tree-equal
copy-list
list
list-length
listp
make-list
push
pop
first
nth
endp
null
nconc
append
revappend
butlast
last
ldiff
nthcdr
rest
member
mapc
acons
assoc
copy-alist
pairlis
rassoc
get-properties
getf
remf
intersection
adjoin
pushnew
set-difference
set-exclusive-or
subsetp
union
Arrays
Array Concepts
Arrays Dictionary
Array Concepts
Array Elements
Specialized Arrays
Array Elements
Array Indices
Array Dimensions
Implementation Limits on Individual Array Dimensions
Array Rank
Vectors
Fill Pointers
Multidimensional Arrays
Storage Layout for Multidimensional Arrays
Implementation Limits on Array Rank
Specialized Arrays
Array Upgrading
Required Kinds of Specialized Arrays
Arrays Dictionary
array
simple-array
vector (System Class)
simple-vector
bit-vector
simple-bit-vector
make-array
adjust-array
adjustable-array-p
aref
array-dimension
array-dimensions
array-element-type
array-has-fill-pointer-p
array-displacement
array-in-bounds-p
array-rank
array-row-major-index
array-total-size
arrayp
fill-pointer
row-major-aref
upgraded-array-element-type
array-dimension-limit
array-rank-limit
array-total-size-limit
simple-vector-p
svref
vector
vector-pop
vector-push
vectorp
bit
bit-and
bit-vector-p
simple-bit-vector-p
Strings
String Concepts
Strings Dictionary
String Concepts
Implications of Strings Being Arrays
Subtypes of STRING
Strings Dictionary
string (System Class)
base-string
simple-string
simple-base-string
simple-string-p
char
string
string-upcase
string-trim
string=
stringp
make-string
Sequences
Sequence Concepts
Rules about Test Functions
Sequences Dictionary
Sequence Concepts
General Restrictions on Parameters that must be Sequences
Rules about Test Functions
Satisfying a Two-Argument Test
Satisfying a One-Argument Test
Satisfying a Two-Argument Test
Examples of Satisfying a Two-Argument Test
Satisfying a One-Argument Test
Examples of Satisfying a One-Argument Test
Sequences Dictionary
sequence
copy-seq
elt
fill
make-sequence
subseq
map
map-into
reduce
count
length
reverse
sort
find
position
search
mismatch
replace
substitute
concatenate
merge
remove
remove-duplicates
Hash Tables
Hash Table Concepts
Hash Tables Dictionary
Hash Table Concepts
Hash-Table Operations
Modifying Hash Table Keys
Modifying Hash Table Keys
Visible Modification of Objects with respect to EQ and EQL
Visible Modification of Objects with respect to EQUAL
Visible Modification of Conses with respect to EQUAL
Visible Modification of Bit Vectors and Strings with respect to EQUAL
Visible Modification of Objects with respect to EQUALP
Visible Modification of Structures with respect to EQUALP
Visible Modification of Arrays with respect to EQUALP
Visible Modification of Hash Tables with respect to EQUALP
Visible Modifications by Language Extensions
Hash Tables Dictionary
hash-table
make-hash-table
hash-table-p
hash-table-count
hash-table-rehash-size
hash-table-rehash-threshold
hash-table-size
hash-table-test
gethash
remhash
maphash
with-hash-table-iterator
clrhash
sxhash
Filenames
Overview of Filenames
Pathnames
Logical Pathnames
Filenames Dictionary
Overview of Filenames
Namestrings as Filenames
Pathnames as Filenames
Parsing Namestrings Into Pathnames
Pathnames
Pathname Components
Interpreting Pathname Component Values
Merging Pathnames
Pathname Components
The Pathname Host Component
The Pathname Device Component
The Pathname Directory Component
The Pathname Name Component
The Pathname Type Component
The Pathname Version Component
Interpreting Pathname Component Values
Strings in Component Values
Special Characters in Pathname Components
Case in Pathname Components
Local Case in Pathname Components
Common Case in Pathname Components
Special Pathname Component Values
NIL as a Component Value
->WILD as a Component Value
->UNSPECIFIC as a Component Value
Relation between component values NIL and ->UNSPECIFIC
Restrictions on Wildcard Pathnames
Restrictions on Examining Pathname Components
Restrictions on Examining a Pathname Host Component
Restrictions on Examining a Pathname Device Component
Restrictions on Examining a Pathname Directory Component
Directory Components in Non-Hierarchical File Systems
Restrictions on Examining a Pathname Name Component
Restrictions on Examining a Pathname Type Component
Restrictions on Examining a Pathname Version Component
Notes about the Pathname Version Component
Restrictions on Constructing Pathnames
Merging Pathnames
Examples of Merging Pathnames
Logical Pathnames
Syntax of Logical Pathname Namestrings
Logical Pathname Components
Syntax of Logical Pathname Namestrings
Additional Information about Parsing Logical Pathname Namestrings
The Host part of a Logical Pathname Namestring
The Device part of a Logical Pathname Namestring
The Directory part of a Logical Pathname Namestring
The Type part of a Logical Pathname Namestring
The Version part of a Logical Pathname Namestring
Wildcard Words in a Logical Pathname Namestring
Lowercase Letters in a Logical Pathname Namestring
Other Syntax in a Logical Pathname Namestring
Logical Pathname Components
Unspecific Components of a Logical Pathname
Null Strings as Components of a Logical Pathname
Filenames Dictionary
pathname (System Class)
logical-pathname (System Class)
pathname
make-pathname
pathnamep
pathname-host
load-logical-pathname-translations
logical-pathname-translations
logical-pathname
*default-pathname-defaults*
namestring
parse-namestring
wild-pathname-p
pathname-match-p
translate-logical-pathname
translate-pathname
merge-pathnames
Files
File System Concepts
Files Dictionary
File System Concepts
Coercion of Streams to Pathnames
File Operations on Open and Closed Streams
Truenames
Truenames
Examples of Truenames
Files Dictionary
directory
probe-file
ensure-directories-exist
truename
file-author
file-write-date
rename-file
delete-file
file-error
file-error-pathname
Streams
Stream Concepts
Streams Dictionary
Stream Concepts
Introduction to Streams
Stream Variables
Stream Arguments to Standardized Functions
Restrictions on Composite Streams
Introduction to Streams
Abstract Classifications of Streams (Introduction to Streams)
Input
Open and Closed Streams
Interactive Streams
Abstract Classifications of Streams
File Streams
Other Subclasses of Stream
Streams Dictionary
stream
broadcast-stream
concatenated-stream
echo-stream
file-stream
string-stream
synonym-stream
two-way-stream
input-stream-p
interactive-stream-p
open-stream-p
stream-element-type
streamp
read-byte
write-byte
peek-char
read-char
read-char-no-hang
terpri
unread-char
write-char
read-line
write-string
read-sequence
write-sequence
file-length
file-position
file-string-length
open
stream-external-format
with-open-file
close
with-open-stream
listen
clear-input
finish-output
y-or-n-p
make-synonym-stream
synonym-stream-symbol
broadcast-stream-streams
make-broadcast-stream
make-two-way-stream
two-way-stream-input-stream
echo-stream-input-stream
make-echo-stream
concatenated-stream-streams
make-concatenated-stream
get-output-stream-string
make-string-input-stream
make-string-output-stream
with-input-from-string
with-output-to-string
*debug-io*
*terminal-io*
stream-error
stream-error-stream
end-of-file
Printer
The Lisp Printer
The Lisp Pretty Printer
Formatted Output
Printer Dictionary
The Lisp Printer
Overview of The Lisp Printer
Printer Dispatching
Default Print-Object Methods
Examples of Printer Behavior
Overview of The Lisp Printer
Multiple Possible Textual Representations
Printer Escaping
Default Print-Object Methods
Printing Numbers
Printing Integers
Printing Ratios
Printing Floats
Printing Complexes
Note about Printing Numbers
Printing Characters
Printing Symbols
Package Prefixes for Symbols
Effect of Readtable Case on the Lisp Printer
Examples of Effect of Readtable Case on the Lisp Printer
Printing Strings
Printing Lists and Conses
Printing Bit Vectors
Printing Other Vectors
Printing Other Arrays
Examples of Printing Arrays
Printing Random States
Printing Pathnames
Printing Structures
Printing Other Objects
The Lisp Pretty Printer
Pretty Printer Concepts
Examples of using the Pretty Printer
Notes about the Pretty Printer's Background
Pretty Printer Concepts
Dynamic Control of the Arrangement of Output
Format Directive Interface
Compiling Format Strings
Pretty Print Dispatch Tables
Pretty Printer Margins
Formatted Output
FORMAT Basic Output
FORMAT Radix Control
FORMAT Floating-Point Printers
FORMAT Printer Operations
FORMAT Pretty Printer Operations
FORMAT Layout Control
FORMAT Control-Flow Operations
FORMAT Miscellaneous Operations
FORMAT Miscellaneous Pseudo-Operations
Additional Information about FORMAT Operations
Examples of FORMAT
Notes about FORMAT
FORMAT Basic Output
Tilde C-> Character
Tilde Percent-> Newline
Tilde Ampersand-> Fresh-Line
Tilde Vertical-Bar-> Page
Tilde Tilde-> Tilde
FORMAT Radix Control
Tilde R-> Radix
Tilde D-> Decimal
Tilde B-> Binary
Tilde O-> Octal
Tilde X-> Hexadecimal
FORMAT Floating-Point Printers
Tilde F-> Fixed-Format Floating-Point
Tilde E-> Exponential Floating-Point
Tilde G-> General Floating-Point
Tilde Dollarsign-> Monetary Floating-Point
FORMAT Printer Operations
Tilde A-> Aesthetic
Tilde S-> Standard
Tilde W-> Write
FORMAT Pretty Printer Operations
Tilde Underscore-> Conditional Newline
Tilde Less-Than-Sign-> Logical Block
Tilde I-> Indent
Tilde Slash-> Call Function
FORMAT Layout Control
Tilde T-> Tabulate
Tilde Less-Than-Sign-> Justification
Tilde Greater-Than-Sign-> End of Justification
FORMAT Control-Flow Operations
Tilde Asterisk-> Go-To
Tilde Left-Bracket-> Conditional Expression
Tilde Right-Bracket-> End of Conditional Expression
Tilde Left-Brace-> Iteration
Tilde Right-Brace-> End of Iteration
Tilde Question-Mark-> Recursive Processing
FORMAT Miscellaneous Operations
Tilde Left-Paren-> Case Conversion
Tilde Right-Paren-> End of Case Conversion
Tilde P-> Plural
FORMAT Miscellaneous Pseudo-Operations
Tilde Semicolon-> Clause Separator
Tilde Circumflex-> Escape Upward
Tilde Newline-> Ignored Newline
Additional Information about FORMAT Operations
Nesting of FORMAT Operations
Missing and Additional FORMAT Arguments
Additional FORMAT Parameters
Undefined FORMAT Modifier Combinations
Printer Dictionary
copy-pprint-dispatch
formatter
pprint-dispatch
pprint-exit-if-list-exhausted
pprint-fill
pprint-indent
pprint-logical-block
pprint-newline
pprint-pop
pprint-tab
print-object
print-unreadable-object
set-pprint-dispatch
write
write-to-string
*print-array*
*print-base*
*print-case*
*print-circle*
*print-escape*
*print-gensym*
*print-level*
*print-lines*
*print-miser-width*
*print-pprint-dispatch*
*print-pretty*
*print-readably*
*print-right-margin*
print-not-readable
print-not-readable-object
format
Reader
Reader Concepts
Reader Dictionary
Reader Concepts
Dynamic Control of the Lisp Reader
Effect of Readtable Case on the Lisp Reader
Argument Conventions of Some Reader Functions
Effect of Readtable Case on the Lisp Reader
Examples of Effect of Readtable Case on the Lisp Reader
Argument Conventions of Some Reader Functions
The EOF-ERROR-P argument
The RECURSIVE-P argument
Reader Dictionary
readtable
copy-readtable
make-dispatch-macro-character
read
read-delimited-list
read-from-string
readtable-case
readtablep
set-dispatch-macro-character
set-macro-character
set-syntax-from-char
with-standard-io-syntax
*read-base*
*read-default-float-format*
*read-eval*
*read-suppress*
*readtable*
reader-error
System Construction
System Construction Concepts
System Construction Dictionary
System Construction Concepts
Loading
Features
Features
Feature Expressions
Examples of Feature Expressions
System Construction Dictionary
compile-file
compile-file-pathname
load
with-compilation-unit
*features*
*compile-file-pathname*
*load-pathname*
*compile-print*
*load-print*
*modules*
provide
Environment
The External Environment
Environment Dictionary
The External Environment
Top level loop
Debugging Utilities
Environment Inquiry
Time
Time
Decoded Time
Universal Time
Internal Time
Seconds
Environment Dictionary
decode-universal-time
encode-universal-time
get-universal-time
sleep
apropos
describe
describe-object
trace
step
time
internal-time-units-per-second
get-internal-real-time
get-internal-run-time
disassemble
documentation
room
ed
inspect
dribble
-
+
*
/
lisp-implementation-type
short-site-name
machine-instance
machine-type
machine-version
software-type
user-homedir-pathname
Glossary
Glossary
Appendix
Removed Language Features
Removed Language Features
Requirements for removed and deprecated features
Removed Types
Removed Operators
Removed Argument Conventions
Removed Variables
Removed Reader Syntax
Packages No Longer Required