2020ok  Directory of FREE Online Books and FREE eBooks

Free eBooks > Science > Mathematics > Pure Mathematics > Logic > The Scheme Programming Language

The Scheme Programming Language

by R. Kent Dybvig

Download Book
(Respecting the intellectual property of others is utmost important to us, we make every effort to make sure we only link to legitimate sites, such as those sites owned by authors and publishers. If you have any questions about these links, please contact us.)

link 1
link 2

About Book

Book Description

A straightforward introduction to scheme and a complete reference manual for ANSI standard Scheme.

The publisher, Prentice-Hall ECS Professional
A straightforward introduction to scheme and a complete reference manual for ANSI standard Scheme.

From the Inside Flap
Scheme was introduced in 1975 by Gerald J. Sussman and Guy L. Steele Jr., as the first dialect of Lisp to fully support lexical scoping, first-class procedures, and continuations. In its earliest form it was a very small language intended primarily for research and teaching, supporting only a handful of predefined syntactic forms and procedures. Scheme is now a complete general-purpose programming language, though it still derives its power from a small set of key concepts. Although early implementations of the language were interpreter-based and slow, some modern Scheme implementations boast sophisticated compilers that generate code on par with code generated by the best optimizing compilers for lower-level languages such as C and Fortran.

This book is intended to provide an introduction to the Scheme language but not an introduction to programming in general. The reader is expected to have had some experience programming and to be familiar with terms commonly associated with computers and programming languages. The author recommends that readers unfamiliar with Scheme or Lisp also read The Little Schemer to become familiar with the concepts of list processing and recursion. Readers new to programming should begin with an introductory text on programming, such as Structure and Interpretation of Computer Programs, Scheme and the Art of Programming, or The Schematics of Computation.

This book is not a formal language definition or standard document and is not intended for use as such by implementors of Scheme. The "IEEE Standard for the Scheme Programming Language," describing the ANSI/IEEE Standard for Scheme, is such a document. A separate series of documents, the "Revised Reports on the Algorithmic Language Scheme," contain extensions to the standard dialect that are not formally standardized but which most implementations support. Some of these extensions may be formally standardized at some future date. The current report in this series is the "Revised^4 Report on the Algorithmic Language Scheme," although as this book goes to press, there is already agreement on features to be included in the Revised^5 Report.

In spite of the foregoing statement that this book should not be taken as a language definition, it does describe all of the language features documented in the ANSI/IEEE Standard, the Revised^4 Report, and the forthcoming Revised^5 Report (as proposed). Features that are in the Revised^4 or Revised^5 Report but not in the ANSI/IEEE standard are identified as such when they are described.

The first edition of this book described a number of extensions supported by the Chez Scheme implementation of Scheme. They have been removed from this edition. The primary rationale for including Chez Scheme-specific features in the first edition was that the standard language was really too small to be viable and including the extensions was necessary to show the full flavor of the language. The standard language has expanded considerably since then and now stands on its own. Features specific to Chez Scheme are described in The Chez Scheme System Manual.

A large number of small- to medium-sized examples are spread throughout the text, and one entire chapter is dedicated to the presentation of a set of longer examples. Many of the examples show how a predefined Scheme syntactic form or procedure might be implemented. Nearly all Scheme systems are interactive, and all of the examples can be entered directly from the keyboard into an interactive Scheme session.

This book is organized into nine chapters. Chapter 1 describes the properties and features of Scheme that make it a useful and enjoyable language to use. Chapter 1 also describes Scheme's notational conventions and the typographical conventions employed in this book.

Chapter 2 is an introduction to Scheme programming for the novice Scheme programmer that leads the reader through a series of examples, beginning with the simplest Scheme expressions and working toward progressively more difficult ones. Each section of Chapter 2 introduces a small set of related features, and at the end of each section is a set of exercises for further practice. The reader will learn the most from Chapter 2 by sitting at the keyboard and typing in the examples and trying the exercises.

Chapter 3 continues the introduction but covers more advanced features and concepts. Even readers with prior Scheme experience may wish to work through the examples and exercises found there.

Chapters 4 through 8 make up the reference portion of the text. They present each of Scheme's primitive procedures and syntactic forms in turn, grouping them into short sections of related procedures and forms.

Chapter 4 describes operations for creating and changing variable bindings; Chapter 5, program control operations; Chapter 6, operations on the various object types (including lists, numbers, and strings); Chapter 7, input and output operations; and Chapter 8, syntactic extension.

Chapter 9 contains a collection of complete example programs or packages, each with a short overview, some examples of its use, the implementation with brief explanation, and a set of exercises for further work. Each of these programs demonstrates a particular set of features, and together they provide a picture of the author's style of programming in Scheme.

Following Chapter 9 are a bibliography, a detailed description of the formal syntax of Scheme programs and data, a concise summary of Scheme syntactic forms and procedures, and the index. The summary of forms and procedures is a useful first stop for programmers unsure of the structure of a syntactic form or the arguments expected by a primitive procedure. The page numbers appearing in the summary of forms and procedures and the italicized page numbers appearing in the index indicate the locations in the text where forms and procedures are defined.

Because the reference portion describes a number of aspects of the language not covered by the introductory chapters along with a number of interesting short examples, most readers will find it profitable to read through most of the material to become familiar with each feature and how it relates to other features. Chapter 6 is lengthy, however, and may be skimmed and later referenced as needed.

From the Back Cover


Scheme is a general purpose programming language descended from Algol and Lisp. Because it is conceptually clean and simple, it is an easy language to learn. At the same time, it is a powerful language, and full mastery of its power requires careful study and practice. Scheme is used widely in computing education and research as well as for a broad spectrum of industrial applications ranging from graphical user interfaces and language compilers to virtual reality engines, web navigators, and enterprise computing solutions.

This revised edition of The Scheme Programming Language provides an introduction to the language for readers with some programming experience. Beginning with a gentle introduction for novice Scheme programmers, it leads the reader through a series of progressively more difficult examples that introduce each of the major features of the language. Advanced concepts and features are thoroughly covered with examples and exercises appropriate even for more experienced programmers.

The introduction is followed by a set of reference chapters that cover Scheme's binding forms, control structures, operations on objects, input and output operations, and syntactic extension facilities. A final chapter is devoted to a collection of sample programs or packages and includes an overview of each package with additional examples and exercises.

About the Author

R. KENT DYBVIG is Associate Professor of Computer Science at Indiana University and principal developer of Chez Scheme, the premier implementation of Scheme.



PLEASE READ: All comments must be approved before appearing in the thread; time and space constraints prevent all comments from appearing. We will only approve comments that are directly related to the article, use appropriate language and are not attacking the comments of others.

Message (please, no HTML tags. Web addresses will be hyperlinked):

Related Free eBooks

Related Tags

DIGG This story   Save To Google   Save To Windows Live   Save To Del.icio.us   diigo it   Save To blinklist
Save To Furl   Save To Yahoo! My Web 2.0   Save To Blogmarks   Save To Shadows   Save To stumbleupon   Save To Reddit