HPL: VOL. IV Functional and Logic Programming Languages:Table of Contents
To access the contents, click the chapter and section titles.
HPL: VOL. IV Functional and Logic Programming Languages
(Imprint: Macmillan Technology)
(Publisher: Macmillan Computer Publishing)
Author: Peter Salus
ISBN: 1578700116
- Foreword to the Handbook of Programming Languages
- About the Authors
- Part 1Lisp
- Chapter 1The LISP Language
- Chapter 2Emacs Lisp: A Short Description
- 2.1. GNU Emacs and Emacs Lisp
- 2.2. Lisp Lists
- 2.2.1. Parts of Lisp
- 2.3. Example: Two Plus Two
- 2.4. Evaluation
- 2.5. A Function Definition
- 2.5.1. An Example of a Search Within a Buffer
- 2.5.2. An Example: multiply-by-seven
- 2.6. Variables
- 2.7. A Chest of Drawers
- 2.8. Functions
- 2.9. The read-eval-print Loop and Side Effects
- 2.10. Types of Variables
- 2.10.1. defvar and defconst
- 2.10.2. setq
- 2.10.3. Passing an Argument
- 2.10.4. A let Expression
- 2.10.5. Buffer-Local Variables
- 2.11. Sequencing
- 2.12. Conditionals
- 2.12.1. and, or, and not
- 2.13. while Loops and Recursion
- 2.13.1. while
- 2.13.2. car, cdr, cons: Fundamental Functions
- 2.13.3. while, Continued
- 2.13.4. Recursion
- 2.14. Macros
- 2.14.1. The list Built-in Function
- 2.14.2. Backquote
- 2.15. Property Lists
- 2.16. Keymaps
- 2.17. Editing Lisp
- 2.18. Help
- 2.19. Debugging
- 2.19.1. The Built-in Debugger
- 2.19.2. Edebug
- 2.20. Backups and Auto-Saving
- 2.21. Evaluating or Loading a Whole File
- 2.22. Byte Compilation
- 2.23. Your .emacs Initialization File
- Part IIScheme
- Chapter 3Scheme
- 3.1. Who Uses Scheme?
- 3.2. Scheme as a Dialect of Lisp
- 3.2.1. Expressions
- 3.2.2. Uniform Syntax
- 3.2.3. Automatic Storage Management
- 3.2.4. High-Level Data Types
- 3.2.5. Untyped Variables
- 3.3. Scheme as a Dialect of Algol
- 3.3.1. Internal Definitions
- 3.3.2. Lexical Scope
- 3.4. Innovations in Scheme
- 3.4.1. First-Class Data
- 3.4.2. Tail Call Elimination
- 3.4.3. First-Class Continuations
- 3.4.4. Lexical Scoping Rules for Macros
- 3.5. Functional Programming in Scheme
- 3.6. Object-Oriented Programming in Scheme
- 3.7. Common Problems for Beginning Scheme Programmers
- 3.7.1. Function Composition Problems
- 3.7.2. Attempted Sequential Results
- 3.7.3. Expressions Dont Print
- 3.7.4. No Variable Reassignment
- 3.7.5. Scheme Isnt English
- 3.7.6. Incomplete Expression Problems
- 3.7.7. Recursion Problems
- 3.7.8. cons Problems
- 3.8. References
- Part IIIGuile
- Chapter 4Guile: An Interpreter Core for Complete Applications
- 4.1. Pure Guile
- 4.2. The Guile Library
- 4.3. Domain-Specific Languages
- 4.4. Specializing Guile
- 4.4.1. Adding Functions to Guile
- 4.4.2. Adding Types to Guile
- 4.5. Cooperation Between Scheme and C
- 4.6. Hints for Using Guile
- 4.7. Related Work
- 4.8. Obtaining Guile and Other Packages
- Part IVCLOS
- Chapter 5A History and Description of CLOS
- 5.1. A Quick History of CLOS
- 5.2. An Introduction to CLOS
- 5.3. Components of CLOS
- 5.3.1. Classes and Instances
- 5.3.2. Class Inheritance
- 5.3.3. Classes and Operations
- 5.3.4. Multiple Argument Dispatch
- 5.3.5. Structure Encapsulation and Slots
- 5.3.6. Standard Method Combination
- 5.3.7. The Metaobject Protocol
- 5.4. Programming in CLOS
- 5.4.1. Slot Properties
- 5.4.2. Accessors and slot-value
- 5.4.3. Multiple Inheritance: Using Mix-ins to Get Modularity
- 5.4.4. Inheritance Rules: Precedence
- 5.4.5. Methods and Generic Functions
- 5.4.6. Before, After, and Around Methods
- 5.4.7. Operator Method Combination
- 5.4.8. Redefining Classes and Changing the Class of Instances
- 5.4.9. Extending CLOS Using the Metaobject Protocol
- 5.4.10. Performance Considerations
- 5.4.11. Summary of CLOS Operators
- Part VProlog
- Chapter 6Prolog: Programming in Logic
- 6.1. History and Background
- 6.1.1. The Early Days
- 6.1.2. Progress on Prolog
- 6.1.3. Myths and Problems of Prolog
- 6.1.4. Prolog Resources
- 6.1.5. The Structure of This Chapter
- 6.2. Basic Prolog Programming
- 6.2.1. Hello World
- 6.2.2. The Genealogy Program
- 6.2.3. A Grammatical Summary
- 6.2.4. Equality and Variables
- 6.2.5. Lists
- 6.2.6. Predicates on Lists
- 6.2.7. Complex Terms in Heads of Clauses
- 6.2.8. How Prolog Does It
- 6.3. More Advanced Features
- 6.3.1. Negation
- 6.3.2. The Cut Literal
- 6.3.3. Multi-Arity Predicates
- 6.3.4. More About Terms
- 6.3.5. Input and Output
- 6.3.6. Other Logic and Control Constructs
- 6.3.7. Finding All Solutions
- 6.3.8. The Four-Port Debugger
- 6.3.9. Definite Clause Grammars
- 6.3.10. assert and retract
- 6.3.11. Operator Declarations
- 6.4. Tips and Traps
- 6.4.1. Style
- 6.4.2. Overusing assert and retract
- 6.4.3. The Singleton Warning and Anonymous Variables
- 6.4.4. Infinite Terms and the Occurs Check
- 6.4.5. The Transitive Closure Problem
- 6.4.6. Tail Recursion Optimization
- 6.4.7. First Argument Indexing
- 6.4.8. Reading Clauses from the Terminal
- 6.4.9. Using the Dash in a Symbol
- 6.5. Examples
- 6.5.1. A Balanced Tree Package
- 6.5.2. Eratosthenes Sieve
- 6.5.3. A C Leak Checker
- 6.5.4. The Game of Life
- 6.5.5. A Simple Lisp Interpreter
- 6.6. Acknowledgments
- 6.7. References
Index
|