《ANSI Common Lisp》简介:

For use as a core text supplement in any course covering common LISP such as Artificial Intelligence or Concepts of Programming Languages. Teaching students new and more powerful ways of thinking about programs, this text contains a tutorial-full of examples-that explains all the essential concepts of Lisp programming, plus an up- to-date summary of ANSI Common Lisp, listing every operator in the language. Informative and fun, it gives students everything they need to start writing programs in Lisp both efficiently and effectively, and highlights such innovative Lisp features as automatic memory management, manifest typing, closures, and more.

《ANSI Common Lisp》目录:

Preface
Audience
How to Use This Book
The Code
On Lisp
Acknowledgements
1 Introduction
1.1 New Tools
1.2 New Techniques
1.3 A New Approach
2 Welcome to Lisp
2.1 Form
2.2 Evaluation
2.3 Data
2.4 List Operations
2.5 Truth
2.6 Functions
2.7 Recursion
2.8 Reading Lisp
2.9 Input and Output
2.10 Variables
2.11 Assignment
2.12 Functional Programming
2.13 Iteration
2.14 Functions as Objects
2.15 Types
2.16 Looking Forward
Summary
Exercises
3 Lists
3.1 Conses
3.2 Equality
3.3 Why Lisp Has No Pointers
3.4 Building Lists
3.5 Example: Compression
3.6 Access
3.7 Mapping Functions
3.8 Trees
3.9 Understanding Recursion
3.10 Sets
3.11 Sequences
3.12 Stacks
3.13 Dotted Lists
3.14 Assoc-lists
3.15 Example: Shortest Path
3.16 Garbage
4 Specialized Data Structures
4.1 Arrays
4.2 Example: Binary Search
4.3 Strings and Characters
4.4 Sequences
4.5 Example: Parsing Dates
4.6 Structures
4.7 Example: Binary Search Trees
4.8 Hash Tables
5 Control
5.1 Blocks
5.2 Context
5.3 Conditionals
5.4 Iteration
5.5 Multiple Values
5.6 Aborts
5.7 Example: Date Arithmetic
6 Functions
6.1 Global Functions
6.2 Local Functions
6.3 Parameter Lists
6.4 Example: Utilities
6.5 Closures
6.6 Example: Function Builders
6.7 Dynamic Scope
6.8 Compilation
6.9 Using Recursion
7 Input and Output
7.1 Streams
7.2 Input
7.3 Output
7.4 Example: String Substitution
7.5 Macro Characters
8 Symbols
8.1 Symbol Names
8.2 Property Lists
8.3 Symbols Are Big
8.4 Creating Symbols
8.5 Multiple Packages
8.6 Keywords
8.7 Symbols and Variables
8.8 Example: Random Text
9 Numbers
9.1 Types
9.2 Conversion and Extraction
9.3 Comparison
9.4 Arithmetic
9.5 Exponentiation
9.6 Trigonometric Functions
9.7 Representation
9.8 Example: Ray-Tracing
10 Macros
10.1 Eval
10.2 Macros
10.3 Backquote
10.4 Example: Quicksort
10.5 Macro Design
10.6 Generalized Reference
10.7 Example: Macro Utilities
10.8 On Lisp
11 CLOS
11.1 Object-Oriented Programming
11.2 Classes and Instances
11.3 Slot Properties
11.4 Superclasses
11.5 Precedence
11.6 Generic Functions
11.7 Auxiliary Methods
11.8 Method Combination
11.9 Encapsulation
11.10 Two Models
12 Structure
12.1 Shared Structure
12.2 Modification
12.3 Example: Queues
12.4 Destructive Functions
12.5 Example: Binary Search Trees
12.6 Example: Doubly-Linked Lists
12.7 Circular Structure
12.8 Constant Structure
13 Speed
13.1 The Bottleneck Rule
13.2 Compilation
13.3 Type Declarations
13.4 Garbage Avoidance
13.5 Example: Pools
13.6 Fast Operators
13.7 Two-Phase Development
14 Advanced Topics
14.1 Type Specifiers
14.2 Binary Streams
14.3 Read-Macros
14.4 Packages
14.5 The Loop Facility
14.6 Conditions
15 Example: Inference
15.1 The Aim
15.2 Matching
15.3 Answering Queries
15.4 Analysis
16 Example: Generating HTML
16.1 HTML
16.2 HTML Utilities
16.3 An Iteration Utility
16.4 Generating Pages
17 Example: Objects
17.1 Inheritance
17.2 Multiple Inheritance
17.3 Defining Objects
17.4 Functional Syntax
17.5 Defining Methods
17.6 Instances
17.7 New Implementation
17.8 Analysis
A: Debugging
B: Lisp in Lisp
C: Changes to Common Lisp
D: Language Reference
Notes
Index
· · · · · ·