6 Mapping Functions 14 1
14 More lambda-list keywords 32 1
13 Keywords 29 1
12 Lisp style 27 1
11 Local versus free variables 25 1
10 Equality 23 1
9 Inside Lisp 18 1
8 Atoms 17 1
7 LAMBDA Expressions 15 1
Contents 1
5 Lists 12 1
4 Tree Structures 10 1
3 Primitive Operations on S-expressions 8 1
2 Program Structures 2 1
1 Data Structures 1 1
. LISP REVIEW 1
PART Ⅰ:LISP PROGRAMMING 1
Pretace 11 1
6 BIND:A Macro For Special Variables 47 2
5 Generating new symbols 45 2
4 Macros 39 2
3 Terminating read-macros 39 2
2 The Backquote Read-Macro 34 2
1 Read-Macros 33 2
.MACROS AND READ-MACROS 33 2
17 Conclusion 82 3
16 BIND 75 3
15 UNWlND-PROTECT 74 3
14 CATCH and THROW 74 3
13 Defining the FOR-macro 69 3
12 Iteration and lists:the mapping functions 64 3
11 DO 63 3
10 ITERATE 60 3
8 Interrupting the normal flow 58 3
9 Redi recting the flow of control:GO 59 3
2 The Conservative Approach to Type Definition 50 3
.DATA STRUCTURES AND CONTROL STRUCTURES 3
IN LISP 48 3
1 The Need for Data Types 48 3
7 Local functions:FLET and LABELS 56 3
3 The Liberal Approach 51 3
4 The Radical Approach 53 3
5 Control Structures 55 3
6 Basic control structure 56 3
.INPUT/OUTPUT IN LISP 83 4
1 Streams 84 4
2 READ-CHAR,READ-LINE,and READ 85 4
3 PRIN1,PRINC,and TERPRI 88 4
4 PRINT,PPRINT,and FORMAT 88 4
5 The MSG Macro 90 4
6 Separating I/O from Your Functions 93 4
6 Macros in Compiled Code 107 5
7 Variables in Compiled Code 107 5
5 Compiler Declarations 105 5
8 Lexical Scoping Versus EVAL and SET 108 5
9 Ignored Variables 110 5
1 What Is Compilation? 97 5
4 What the Lisp Compiler Does 101 5
3 Example:Regular Expressions 100 5
2 Implications for Al Programs 99 5
PROGRAM S PROGRAM 97 5
. OMPILING YOUR PROGRAM AND YOUR 5
.DATA-DRIVEN PROGRAMMING AND OTHER 6
PROGRAMMING TECHNIQUES 111 6
1 Data-driven Programming 111 6
2 Association Lists,Property Lists,and Hash Tables 112 6
3 Reimplementing MSG 116 6
4 Data-Driven Programming as an 6
Organizational Device 119 6
5 Set Operations on Lists 121 6
6 Headed Lists and Queues 123 6
4 Coroutines 136 7
5 Continuations and ControI Flow: 7
3 Continuations and Multiple Values 132 7
CALL-WITH-CURRENT-CONTINUATION 142 7
6 Problems with Continuation Passing 147 7
1 Passing Procedures In and Out 127 7
AND COROUTINES 127 7
.HIGHER-ORDER FUNCTIONS,CONTINUATIONS, 7
2 Continuations and Tail-Recursion 129 7
2 Database Discrimination Nets—Lists of Atoms 153 8
4 Implementing Discrimination Trees with 8
3 Database Discrimination Nets—General 8
S-expressions 157 8
1 The General Discrimination Net 149 8
.SIMPLE DISCRIMINATION NETS 149 8
PART Ⅱ: Al PROGRAMMING TECHNIQUES 8
Continuations 161 9
.AGENDA CONTROL STRUCTURES 166 9
1 Introduction 1 66 9
2 Best-First Tree Search 166 9
3 Coroutines and Agendas 171 9
4 Design Alternatives for Agendas 176 9
5 Generated Lists 177 9
11 Programming with Logic 215 10
12 Extending the Retriever 218 10
10 Forward Chaining 213 10
9 A Deductive Retriever 202 10
8 A Unification Algorithm 195 10
13 Deductive Retrieval versus Theorem Proving 223 10
14 Pattern Matching 224 10
15 The Pros and Cons of Deductive Information 10
2 Database-defined Predicates 183 10
7 Deductive Retrieval 190 10
6 Issues 189 10
5 Coming to Terms 188 10
4 Existential Quantification 187 10
3 Connectives,Variables,and lnference Rules 183 10
1 Introduction 182 10
.DEDUCTIVE INFORMATION RETRIEVAL 182 10
Retrieval 226 11
.DISCRIMINATION NETS WITH VARIABLES 230 11
1 Plan Retrieval 231 11
2 Fetching Facts 235 11
3 Variations on the Discrimination Net Theme 240 11
6 An Example 266 12
7 Improvements to XPS 271 12
5 The Implementation of XPS 254 12
8 XPS and OPS5 272 12
9 Deductive Retrieval and Production Systems 275 12
2 ReDresentation of Working Memory Elements 12
3 Establishing the Conflict Set 251 12
in XPS 250 12
1 Representation of Rules in XPS 249 12
.PRODUCTION SYSTEMS 248 12
4 Conflict Resolution in XPS 251 12
4 Pattern Matching in XRL 288 13
7 Extending XRL 298 13
6 Retrieving Forms 296 13
5 Indexing Forms 294 13
3 IF-ADDED Methods 287 13
2 An Introduction to XRL 277 13
1 Expanding Property List Facilities 276 13
.SLOT AND FILLER DATA BASES 276 13
8 Using Problem-Solving Techniques 332 14
7 Defining the ATN with Continuations 328 14
6 Backtracking with a Transition-Saving Approach 327 14
4 An ATN without Backtracking 312 14
5 Backtracking In ATNs—A State-Saving Approach 320 14
Backup 305 14
2 A Basic Transition Network Grammar without 14
1 Introduction 304 14
.CHRONOLOGICAL BACKTRACKING 304 14
3 Representing an ATN Network in Lisp 308 14
7 Retracting Clauses and Delabeling Nodes 345 15
14 RMS to Lisp Communications 385 15
13 Dealing with Interruptions 379 15
12 Subsuming Clauses 378 15
11 Finding Nogoods 372 15
10 Dependency-directed Backtracking 367 15
9 The Eight Queens Problem 355 15
8 The lmplementation of an RMS 347 15
4 Labeling Data-Dependency Networks 339 15
6 Incompleteness of the RMS Algorithm 343 15
5 Propagating Labels from New Clauses 341 15
3 Data-Dependency Network Graphs 339 15
2 Data-Dependency Clauses 338 15
1 The Need for Reason Maintenance 337 15
SYSTEMS 337 15
.DATA DEPENDENCIES AND REASON MAINTENANCE 15