Fr. 69.00

Programming and Meta-Programming in Scheme

English · Paperback / Softback

Shipping usually within 1 to 2 weeks (title will be printed to order)

Description

Read more

By now, Scheme is a well-established programming language and is finding increasing popularity in programming courses for undergraduates. Its expressive capabilities are matched by a simplicity of language and ease-of-use which have made its adherents disciples! This textbook provides a comprehensive first course in Scheme and covers all of its major features: abstraction, functional programming, data types, recursion, and semantic programming. Although the primary goal of this text is to teach students to program in Scheme, it will be suitable for any student studying a general programming principles course. Each chapter is divided into three sections: core, appendix , and problems. Most essential topics are covered in the core section, but it is assumed that most students will read the appendices and solve most of the problems. (Nearly all of the problems require students to write short Scheme procedures.) As well as providing a thorough grounding in Scheme, the author discusses in depth different programming paradigms. An important theme throughout is that of "meta-programming": the perspective that programs themselves can be treated as data, and hence can be analyzed and modified as objects. This provides insight into topics such as type-checking and overloading which might otherwise be missed.

List of contents

1.1 LISP.- 1.2 Scheme.- 1.3. Structure of the Text.- 1. Expressions and Values.- 1.1. Values.- 1.2. Expressions.- 1.3. The Scheme Interpreter.- 1.4. Definitions.- Appendices.- Problems.- 2. Procedures.- 2.1. Defining and Applying Procedures.- 2.2. Building Procedures Using Application.- 2.3. The Abstraction Principle.- 2.4. Polymorphic Procedures.- 2.5. Meta-Procedures.- Appendices.- Problems.- 3. Evaluation Control and Recursion.- 3.1. Evaluation Control.- 3.2. Short Circuit Evaluation.- 3.3. Conditional Evaluation.- 3.4. Recursion.- 3.5. Thinking Recursively.- Problems.- 4. Data Control.- 4.1. Procedure Blocks.- 4.2. The Environment Model of Eager Evaluation.- 4.3. Abstract Data Types.- 4.4. Overloading.- 4.5. Domains as Data.- 4.6. Data-Driven Programming.- Appendices.- Problems.- 5. Iteration.- 5.1. Modeling Systems.- 5.2. Computations as Data.- 5.3. Finding Iterative Solutions.- 5.4. Tail Recursion: Are do-loops Necessary?.- 5.5. Finding Elementary Solutions.- Appendices.- Problems.- 6. Recursive Domains.- 6.1. Recursive Domains as Hierarchies.- 6.2. List Recursion.- 6.3. The Signal Processing Paradigm.- 6.4. Trees and Tree Recursion.- Appendices.- Problems.- 7. Variables.- 7.1. Stores.- 7.2. Variables and References.- 7.3. Commands.- 7.4. L-Value versus R-Value.- 7.5. Aliasing.- 7.6. Define Versus Assign.- 7.7. Imperative Programming.- 7.8. The Bank Account Example.- Appendices.- Problems.- 8. Expressions as Values.- 8.1. Macros.- 8.2. Semantic Prototyping.- 8.3. Alpha.- 8.4. Beta.- Appendices.- Problems.- References.

Product details

Authors Jon Pearce
Publisher Springer, Berlin
 
Languages English
Product format Paperback / Softback
Released 13.03.2013
 
EAN 9781461272434
ISBN 978-1-4612-7243-4
No. of pages 341
Dimensions 169 mm x 20 mm x 248 mm
Weight 640 g
Illustrations XIII, 341 p.
Series Undergraduate Texts in Computer Science
Undergraduate Texts in Computer Science
Subject Natural sciences, medicine, IT, technology > IT, data processing > Programming languages

Customer reviews

No reviews have been written for this item yet. Write the first review and be helpful to other users when they decide on a purchase.

Write a review

Thumbs up or thumbs down? Write your own review.

For messages to CeDe.ch please use the contact form.

The input fields marked * are obligatory

By submitting this form you agree to our data privacy statement.