The Scheme Programming Language, 4e

by Dybvig

ISBN: 9780262258166 | Copyright 2009

Click here to preview

Instructor Requests

Digital Exam/Desk Copy Print Exam/Desk Copy Ancillaries
Tabs
Scheme is a general-purpose programming language, descended from Algol and Lisp, widely used in computing education and research and a broad range of industrial applications. This thoroughly updated edition of The Scheme Programming Language provides an introduction to Scheme and a definitive reference for standard Scheme, presented in a clear and concise manner. Written for professionals and students with some prior programming experience, it begins by leading the programmer gently through the basics of Scheme and continues with an introduction to some of the more advanced features of the language. The fourth edition has been substantially revised and expanded to bring the content up to date with the current Scheme standard, the Revised6 Report on Scheme. All parts of the book were updated and three new chapters were added, covering the language's new library, exception handling, and record-definition features. The book offers three chapters of introductory material with numerous examples, eight chapters of reference material, and one chapter of extended examples and additional exercises. All of the examples can be entered directly from the keyboard into an interactive Scheme session. Answers to many of the exercises, a complete formal syntax of Scheme, and a summary of forms and procedures are provided in appendixes. The Scheme Programming Language is the only book available that serves both as an introductory text in a variety of courses and as an essential reference for Scheme programmers.
Expand/Collapse All
Contents (pg. v)
Preface (pg. ix)
Chapter 1. Introduction (pg. 1)
1.1. Scheme Syntax (pg. 6)
1.2. Scheme Naming Conventions (pg. 8)
1.3. Typographical and Notational Conventions (pg. 9)
Chapter 2. Getting Started (pg. 11)
2.1. Interacting with Scheme (pg. 13)
2.2. Simple Expressions (pg. 16)
2.3. Evaluating Scheme Expressions (pg. 21)
2.4. Variables and Let Expressions (pg. 23)
2.5. Lambda Expressions (pg. 26)
2.6. Top-Level Definitions (pg. 30)
2.7. Conditional Expressions (pg. 34)
2.8. Simple Recursion (pg. 41)
2.9. Assignment (pg. 47)
Chapter 3. Going Further (pg. 57)
3.1. Syntactic Extension (pg. 59)
3.2. More Recursion (pg. 65)
3.3. Continuations (pg. 73)
3.4. Continuation Passing Style (pg. 78)
3.5. Internal Definitions (pg. 81)
3.6. Libraries (pg. 85)
Chapter 4. Procedures and Variable Bindings (pg. 89)
4.1. Variable References (pg. 91)
4.2. Lambda (pg. 92)
4.3. Case-Lambda (pg. 93)
4.4. Local Binding (pg. 95)
4.5. Multiple Values (pg. 99)
4.6. Variable Definitions (pg. 100)
4.7. Assignment (pg. 102)
Chapter 5. Control Operations (pg. 105)
5.1. Procedure Application (pg. 107)
5.2. Sequencing (pg. 108)
5.3. Conditionals (pg. 109)
5.4. Recursion and Iteration (pg. 114)
5.5. Mapping and Folding (pg. 117)
5.6. Continuations (pg. 122)
5.7. Delayed Evaluation (pg. 127)
5.8. Multiple Values (pg. 130)
5.9. Eval (pg. 136)
Chapter 6. Operations on Objects (pg. 139)
6.1. Constants and Quotation (pg. 141)
6.2. Generic Equivalence and Type Predicates (pg. 143)
6.3. Lists and Pairs (pg. 155)
6.4. Numbers (pg. 167)
6.5. Fixnums (pg. 192)
6.6. Flonums (pg. 202)
6.7. Characters (pg. 211)
6.8. Strings (pg. 216)
6.9. Vectors (pg. 223)
6.10. Bytevectors (pg. 227)
6.11. Symbols (pg. 241)
6.12. Booleans (pg. 243)
6.13. Hashtables (pg. 243)
6.14. Enumerations (pg. 250)
Chapter 7. Input and Output (pg. 255)
7.1. Transcoders (pg. 258)
7.2. Opening Files (pg. 260)
7.3. Standard Ports (pg. 263)
7.4. String and Bytevector Ports (pg. 264)
7.5. Opening Custom Ports (pg. 267)
7.6. Port Operations (pg. 270)
7.7. Input Operations (pg. 273)
7.8. Output Operations (pg. 278)
7.9. Convenience I/O (pg. 280)
7.10. Filesystem Operations (pg. 286)
7.11. Bytevector/String Conversions (pg. 286)
Chapter 8. Syntactic Extension (pg. 289)
8.1. Keyword Bindings (pg. 291)
8.2. Syntax-Rules Transformers (pg. 294)
8.3. Syntax-Case Transformers (pg. 298)
8.4. Examples (pg. 311)
Chapter 9. Records (pg. 321)
9.1. Defining Records (pg. 323)
9.2. Procedural Interface (pg. 331)
9.3. Inspection (pg. 335)
Chapter 10. Libraries and Top-Level Programs (pg. 341)
10.1. Standard Libraries (pg. 343)
10.2. Defining New Libraries (pg. 344)
10.3. Top-Level Programs (pg. 350)
10.4. Examples (pg. 350)
Chapter 11. Exceptions and Conditions (pg. 355)
11.1. Raising and Handing Exceptions (pg. 357)
11.2. Defining Condition Types (pg. 361)
11.3. Standard Condition Types (pg. 366)
Chapter 12. Extended Examples (pg. 379)
12.1. Matrix and Vector Multiplication (pg. 381)
12.2. Sorting (pg. 387)
12.3. A Set Constructor (pg. 389)
12.4. Word Frequency Counting (pg. 393)
12.5. Scheme Printer (pg. 397)
12.6. Formatted Output (pg. 401)
12.7. A Meta-Circular Interpreter for Scheme (pg. 404)
12.8. Defining Abstract Objects (pg. 408)
12.9. Fast Fourier Transform (pg. 412)
12.10. A Unification Algorithm (pg. 417)
12.11. Multitasking with Engines (pg. 421)
References (pg. 431)
Answers to Selected Exercises (pg. 435)
Formal Syntax (pg. 455)
Summary of Forms (pg. 463)
Index (pg. 481)
eTextbook
Go paperless today! Available online anytime, nothing to download or install.

Features

  • Bookmarking
  • Note taking
  • Highlighting