did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9781555580414

Common LISP

by
  • ISBN13:

    9781555580414

  • ISBN10:

    1555580416

  • Edition: 2nd
  • Format: Paperback
  • Copyright: 1984-06-15
  • Publisher: Elsevier Science

Note: Supplemental materials are not guaranteed with Rental or Used book purchases.

Purchase Benefits

  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
  • Complimentary 7-Day eTextbook Access - Read more
    When you rent or buy this book, you will receive complimentary 7-day online access to the eTextbook version from your PC, Mac, tablet, or smartphone. Feature not included on Marketplace Items.
List Price: $72.95 Save up to $27.00
  • Rent Book $45.95
    Add to Cart Free Shipping Icon Free Shipping

    TERM
    PRICE
    DUE

    7-Day eTextbook Access 7-Day eTextbook Access

    USUALLY SHIPS IN 3-5 BUSINESS DAYS
    *This item is part of an exclusive publisher rental program and requires an additional convenience fee. This fee will be reflected in the shopping cart.

Supplemental Materials

What is included with this book?

Summary

The defacto standard - a must-have for all LISP programmers. In this greatly expanded edition of the defacto standard, you'll learn about the nearly 200 changes already made since original publication - and find out about gray areas likely to be revised later. Written by the Vice- Chairman of X3J13 (the ANSI committee responsible for the standardization of Common Lisp) and co-developer of the language itself, the new edition contains the entire text of the first edition plus six completely new chapters. They cover: - CLOS, the Common Lisp Object System, with new features to support function overloading and object-oriented programming, plus complete technical specifications * Loops, a powerful control structure for multiple variables * Conditions, a generalization of the error signaling mechanism * Series and generators * Plus other subjects not part of the ANSI standards but of interest to professional programmers. Throughout, you'll find fresh examples, additional clarifications, warnings, and tips - all presented with the author's customary vigor and wit.

Table of Contents

Preface (Second Edition) xi(4)
Acknowledgments (Second Edition) xv(5)
Acknowledgments (First Edition) xx
1. Introduction
1(11)
1.1. Purpose
1(3)
1.2. Notational Conventions
4(8)
1.2.1. Decimal Numbers
4(1)
1.2.2. Nil, False, and the Empty List
4(1)
1.2.3. Evaluation, Expansion, and Equivalence
5(1)
1.2.4. Errors
5(1)
1.2.5. Descriptions of Functions and Other Entities
6(3)
1.2.6. The Lisp Reader
9(1)
1.2.7. Overview of Syntax
10(2)
2. Data Types
12(30)
2.1. Numbers
15(8)
2.1.1. Integers
16(2)
2.1.2. Ratios
18(1)
2.1.3. Floating-Point Numbers
18(4)
2.1.4. Complex Numbers
22(1)
2.2. Characters
23(4)
2.2.1. Standard Characters
23(1)
2.2.2. Line Divisions
24(1)
2.2.3. Non-standard Characters
25(1)
2.2.4. Character Attributes
26(1)
2.2.5. String Characters
26(1)
2.3. Symbols
27(2)
2.4. Lists and Conses
29(2)
2.5. Arrays
31(4)
2.5.1. Vectors
32(1)
2.5.2. Strings
33(1)
2.5.3. Bit-Vectors
34(1)
2.6. Hash Tables
35(1)
2.7. Readtables
35(1)
2.8. Packages
35(1)
2.9. Pathnames
35(1)
2.10. Streams
35(1)
2.11. Random-States
36(1)
2.12. Structures
36(1)
2.13. Functions
36(1)
2.14. Unreadable Data Objects
37(1)
2.15. Overlap, Inclusion, and Disjointness of Types
37(5)
3. Scope and Extent
42(7)
4. Type Specifiers
49(20)
4.1. Type Specifier Symbols
49(1)
4.2. Type Specifier Lists
49(2)
4.3. Predicating Type Specifiers
51(1)
4.4. Type Specifiers That Combine
51(1)
4.5. Type Specifiers That Specialize
52(8)
4.6. Type Specifiers That Abbreviate
60(2)
4.7. Defining New Type Specifiers
62(1)
4.8. Type Conversion Function
63(2)
4.9. Determining the Type of an Object
65(2)
4.10. Type Upgrading
67(2)
5. Program Structure
69(26)
5.1. Forms
69(6)
5.1.1. Self-Evaluating Forms
70(1)
5.1.2. Variables
70(2)
5.1.3. Special Forms
72(1)
5.1.4. Macros
73(1)
5.1.5. Function Calls
74(1)
5.2. Functions
75(8)
5.2.1. Named Functions
75(1)
5.2.2. Lambda-Expressions
75(8)
5.3. Top-Level Forms
83(12)
5.3.1. Defining Named Functions
84(2)
5.3.2. Declaring Global Variables and Named Constants
86(2)
5.3.3. Control of Time of Evaluation
88(7)
6. Predicates
95(18)
6.1. Logical Values
96(1)
6.2. Data Type Predicates
96(7)
6.2.1. General Type Predicates
96(3)
6.2.2. Specific Data Type Predicates
99(4)
6.3. Equality Predicates
103(7)
6.4. Logical Operators
110(3)
7. Control Structure
113(80)
7.1. Constants and Variables
114(9)
7.1.1. Reference
114(7)
7.1.2. Assignment
121(2)
7.2. Generalized Variables
123(22)
7.3. Function Invocation
145(2)
7.4. Simple Sequencing
147(1)
7.5. Establishing New Variable Bindings
148(8)
7.6. Conditionals
156(5)
7.7. Blocks and Exits
161(2)
7.8. Iteration
163(15)
7.8.1. Indefinite Iteration
163(1)
7.8.2. General Iteration
164(4)
7.8.3. Simple Iteration Constructs
168(3)
7.8.4. Mapping
171(2)
7.8.5. The "Program Feature"
173(5)
7.9. Structure Traversal and Side Effects
178(1)
7.10. Multiple Values
179(8)
7.10.1. Constructs for Handling Multiple Values
180(4)
7.10.2. Rules Governing the Passing of Multiple Values
184(1)
7.11. Dynamic Non-Local Exits
187(6)
8. Macros
193(22)
8.1. Macro Definition
194(9)
8.2. Macro Expansion
203(1)
8.3. Destructuring
204(1)
8.4. Compiler Macros
205(2)
8.5. Environments
207(8)
9. Declarations
215(23)
9.1. Declaration Syntax
215(8)
9.2. Declaration Specifiers
223(13)
9.3. Type Declaration for Forms
236(2)
10. Symbols
238(9)
10.1. The Property List
238(5)
10.2. The Print Name
243(1)
10.3. Creating Symbols
243(4)
11. Packages
247(41)
11.1. Consistency Rules
249(1)
11.2. Package Names
249(2)
11.3. Translating Strings to Symbols
251(2)
11.4. Exporting and Importing Symbols
253(2)
11.5. Name Conflicts
255(3)
11.6. Built-in Packages
258(3)
11.7. Package System Functions and Variables
261(16)
11.8. Modules
277(1)
11.9. An Example
278(10)
12. Numbers
288(83)
12.1. Precision, Contagion, and Coercion
288(3)
12.2. Predicates on Numbers
291(1)
12.3. Comparisons on Numbers
292(3)
12.4. Arithmetic Operations
295(4)
12.5. Irrational and Transcendental Functions
299(51)
12.5.1. Exponential and Logarithmic Functions
300(3)
12.5.2. Trigonometric and Related Functions
303(6)
12.5.3. Branch Cuts, Principal Values, and Boundary Conditions in the Complex Plane
309(41)
12.6. Type Conversions and Component Extractions on Numbers
350(7)
12.7. Logical Operations on Numbers
357(5)
12.8. Byte Manipulation Functions
362(3)
12.9. Random Numbers
365(3)
12.10. Implementation Parameters
368(3)
13. Characters
371(17)
13.1. Character Attributes
374(2)
13.2. Predicates on Characters
376(5)
13.3. Character Construction and Selection
381(2)
13.4. Character Conversions
383(2)
13.5. Character Control-Bit Functions
385(3)
14. Sequences
388(23)
14.1. Simple Sequence Functions
392(2)
14.2. Concatenating, Mapping, and Reducing Sequences
394(4)
14.3. Modifying Sequences
398(6)
14.4. Searching Sequences for Items
404(3)
14.5. Sorting and Merging
407(4)
15. Lists
411(24)
15.1. Conses
411(2)
15.2. Lists
413(10)
15.3. Alteration of List Structure
423(1)
15.4. Substitution of Expressions
424(2)
15.5. Using Lists as Sets
426(5)
15.6. Association Lists
431(4)
16. Hash Tables
435(7)
16.1. Hash Table Functions
436(5)
16.2. Primitive Hash Function
441(1)
17. Arrays
442(18)
17.1. Array Creation
442(5)
17.2. Array Access
447(1)
17.3. Array Information
448(4)
17.4. Functions on Arrays of Bits
452(2)
17.5. Fill Pointers
454(2)
17.6. Changing the Dimensions of an Array
456(4)
18. Strings
460(8)
18.1. String Access
461(1)
18.2. String Comparison
461(2)
18.3. String Construction and Manipulation
463(5)
19. Structures
468(22)
19.1. Introduction to Structures
468(2)
19.2. How to Use Defstruct
470(3)
19.3. Using the Automatically Defined Constructor Function
473(2)
19.4. Defstruct Slot-Options
475(1)
19.5. Defstruct Options
476(6)
19.6. By-Position Constructor Functions
482(3)
19.7. Structures of Explicitly Specified Representational Type
485(5)
19.7.1. Unnamed Structures
485(1)
19.7.2. Named Structures
486(1)
19.7.3. Other Aspects of Explicitly Specified Structures
487(3)
20. The Evaluator
490(7)
20.1. Run-Time Evaluation of Forms
490(4)
20.2. The Top-Level Loop
494(3)
21. Streams
497(12)
21.1. Standard Streams
497(3)
21.2. Creating New Streams
500(4)
21.3. Operations on Streams
504(5)
22. Input/Output
509(102)
22.1. Printed Representation of Lisp Objects
509(58)
22.1.1. What the Read Function Accepts
510(6)
22.1.2. Parsing of Numbers and Symbols
516(8)
22.1.3. Macro Characters
524(6)
22.1.4. Standard Dispatching Macro Character Syntax
530(10)
22.1.5. The Readtable
540(10)
22.1.6. What the Print Function Produces
550(17)
22.2. Input Functions
567(9)
22.2.1. Input from Character Streams
567(9)
22.2.2. Input from Binary Streams
576(1)
22.3. Output Functions
576(33)
22.3.1. Output to Character Streams
576(5)
22.3.2. Output to Binary Streams
581(1)
22.3.3. Formatted Output to Character Streams
581(28)
22.4. Querying the User
609(2)
23. File System Interface
611(53)
23.1. File Names
611(35)
23.1.1. Pathnames
612(5)
23.1.2. Case Conventions
617(3)
23.1.3. Structured Directories
620(3)
23.1.4. Extended Wildcards
623(5)
23.1.5. Logical Pathnames
628(1)
23.1.5.1. Syntax of Logical Pathname Namestrings
628(1)
23.1.5.2. Parsing of Logical Pathname Namestrings
629(1)
23.1.5.3. Using Logical Pathnames
630(3)
23.1.5.4. Examples of the Use of Logical Pathnames
633(2)
23.1.5.5. Discussion of Logical Pathnames
635(2)
23.1.6. Pathname Functions
637(9)
23.2. Opening and Closing Files
646(6)
23.3. Renaming, Deleting, and Other File Operations
652(5)
23.4. Loading Files
657(6)
23.5. Accessing Directories
663(1)
24. Errors
664(12)
24.1. General Error-Signaling Functions
665(5)
24.2. Specialized Error-Signaling Forms and Macros
670(3)
24.3. Special Forms for Exhaustive Case Analysis
673(3)
25. Miscellaneous Features
676(33)
25.1. The Compiler
676(18)
25.1.1. Compiler Diagnostics
683(2)
25.1.2. Compiled Functions
685(1)
25.1.3. Compilation Environment
685(6)
25.1.4. Similarity of Constants
691(3)
25.2. Documentation
694(1)
25.3. Debugging Tools
695(6)
25.4. Environment Inquiries
701(6)
25.4.1. Time Functions
702(3)
25.4.2. Other Environment Inquiries
705(2)
25.5. Identity Function
707(2)
26. Loop
709(39)
26.1. Introduction
709(1)
26.2. How the Loop Facility Works
709(1)
26.3. Parsing Loop Clauses
710(5)
26.3.1. Order of Execution
711(1)
26.3.2. Kinds of Loop Clauses
712(2)
26.3.3. Loop Syntax
714(1)
26.4. User Extensibility
715(1)
26.5. Loop Constructs
715(1)
26.6. Iteration Control
716(10)
26.7. End-Test Control
726(4)
26.8. Value Accumulation
730(5)
26.9. Variable Initializations
735(3)
26.10. Conditional Execution
738(2)
26.11. Unconditional Execution
740(2)
26.12. Miscellaneous Features
742(6)
26.12.1. Data Types
742(1)
26.12.2. Destructuring
743(5)
27. Pretty Printing
748(22)
27.1. Introduction
748(1)
27.2. Pretty Printing Control Variables
749(1)
27.3. Dynamic Control of the Arrangement of Output
750(11)
27.4. Format Directive Interface
761(3)
27.5. Compiling Format Control Strings
764(1)
27.6. Pretty Printing Dispatch Tables
765(5)
28. Common Lisp Object System
770(95)
28.1. Programmer Interface Concepts
770(45)
28.1.1. Error Terminology
771(2)
28.1.2. Classes
773(2)
28.1.2.1. Defining Classes
775(1)
28.1.2.2. Creating Instances of Classes
776(1)
28.1.2.3. Slots
776(1)
28.1.2.4. Accessing Slots
777(1)
28.1.3. Inheritance
778(1)
28.1.3.1. Inheritance of Methods
778(1)
28.1.3.2. Inheritance of Slots and Slot Options
778(2)
28.1.3.3. Inheritance of Class Options
780(1)
28.1.3.4. Examples
780(1)
28.1.4. Integrating Types and Classes
780(2)
28.1.5. Determining the Class Precedence List
782(2)
28.1.5.1. Topological Sorting
784(1)
28.1.5.2. Examples
784(2)
28.1.6. Generic Functions and Methods
786(1)
28.1.6.1. Introduction to Generic Functions
787(1)
28.1.6.2. Introduction to Methods
788(3)
28.1.6.3. Agreement on Parameter Specializers and Qualifiers
791(1)
28.1.6.4. Congruent Lambda-Lists for All Methods of a Generic Function
791(1)
28.1.6.5. Keyword Arguments in Generic Functions and Methods
792(1)
28.1.7. Method Selection and Combination
793(1)
28.1.7.1. Determining the Effective Method
793(3)
28.1.7.2. Standard Method Combination
796(1)
28.1.7.3. Declarative Method Combination
797(1)
28.1.7.4. Built-in Method Combination Types
798(1)
28.1.8. Meta-objects
799(1)
28.1.8.1. Metaclasses
800(1)
28.1.8.2. Standard Metaclasses
800(1)
28.1.8.3. Standard Meta-objects
800(1)
28.1.9. Object Creation and Initialization
801(1)
28.1.9.1. Initialization Arguments
802(1)
28.1.9.2. Declaring the Validity of Initialization Arguments
803(1)
28.1.9.3. Defaulting of Initialization Arguments
804(1)
28.1.9.4. Rules for Initialization Arguments
805(1)
28.1.9.5. Shared-Initialize
806(1)
28.1.9.6. Initialize-Instance
807(1)
28.1.9.7. Definitions of Make-Instance and Initialize-Instance
808(2)
28.1.10. Redefining Classes
810(1)
28.1.10.1. Modifying the Structure of Instances
811(1)
28.1.10.2. Initializing Newly Added Local Slots
811(1)
28.1.10.3. Customizing Class Redefinition
812(1)
28.1.10.4. Extensions
812(1)
28.1.11. Changing the Class of an Instance
812(1)
28.1.11.1. Modifying the Structure of an Instance
813(1)
28.1.11.2. Initializing Newly Added Local Slots
813(1)
28.1.11.3. Customizing the Change of Class of an Instance
814(1)
28.1.12. Reinitializing an Instance
814(1)
28.1.12.1. Customizing Reinitialization
815(1)
28.2. Functions in the Programmer Interface
815(50)
29. Conditions
865(58)
29.1. Introduction
865(2)
29.2. Changes in Terminology
867(1)
29.3. Survey of Concepts
868(18)
29.3.1. Signaling Errors
868(2)
29.3.2. Trapping Errors
870(2)
29.3.3. Handling Conditions
872(1)
29.3.4. Object-Oriented Basis of Condition Handling
873(1)
29.3.5. Restarts
874(1)
29.3.6. Anonymous Restarts
875(2)
29.3.7. Named Restarts
877(1)
29.3.8. Restart Functions
878(1)
29.3.9. Comparison of Restarts and Catch/Throw
878(2)
29.3.10. Generalized Restarts
880(1)
29.3.11. Interactive Condition Handling
881(1)
29.3.12. Serious Conditions
881(1)
29.3.13. Non-Serious Conditions
882(1)
29.3.14. Condition Types
882(1)
29.3.15. Signaling Conditions
883(1)
29.3.16. Resignaling Conditions
883(1)
29.3.17. Condition Handlers
884(1)
29.3.18. Printing Conditions
884(2)
29.4. Program Interface to the Condition System
886(30)
29.4.1. Signaling Conditions
886(3)
29.4.2. Assertions
889(3)
29.4.3. Exhaustive Case Analysis
892(3)
29.4.4. Handling Conditions
895(3)
29.4.5. Defining Conditions
898(3)
29.4.6. Creating Conditions
901(1)
29.4.7. Establishing Restarts
901(9)
29.4.8. Finding and Manipulating Restarts
910(2)
29.4.9. Warnings
912(1)
29.4.10. Restart Functions
913(1)
29.4.11. Debugging Utilities
914(2)
29.5. Predefined Condition Types
916(7)
Appendix A. Series
923(33)
A.1. Introduction
923(2)
A.2. Series Functions
925(18)
A.2.1. Scanners
925(5)
A.2.2. Mapping
930(2)
A.2.3. Truncation and Other Simple Transducers
932(3)
A.2.4. Conditional and Other Complex Transducers
935(3)
A.2.5. Collectors
938(4)
A.2.6. Alteration of Series
942(1)
A.3. Optimization
943(7)
A.3.1. Basic Restrictions
943(2)
A.3.2. Constraint Cycles
945(3)
A.3.3. Defining New Series Functions
948(1)
A.3.4. Declarations
949(1)
A.4. Primitives
950(6)
Appendix B. Generators and Gatherers
956(4)
B.1. Introduction
956(1)
B.2. Generators
957(1)
B.3. Gatherers
957(2)
B.4. Discussion
959(1)
Appendix C. Backquote
960(12)
References 972(4)
Index of X3J13 Votes 976(5)
Other Indexes 981

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program