How to design programs
Subtitle: an introduction to programming and computing
By: Matthias Felleisen ... [et al.].
Contributors: Felleisen, Matthias.
Publisher: MIT Press
Published: 2001
Place of publication: Cambridge, Mass
Language: eng
Number of pages: 693
Subjects: Computer programming; Electronic data processing
Notes: Includes bibliographical references and index.
Table of contents: title: Processing simple forms of data. Students, teachers, and computers; title: Numbers, expressions, simple programs; title: Programs are function plus variable definitions; title: Conditional expressions and functions; title: Symbolic information; title: Compound data, part 1: structures; title: The varieties of data; title: Syntax and semantics; title: Processing arbitrarily large data. Compound data, part 2: lists; title: More on processing lists; title: Natural numbers; title: Composing functions, revisited again; title: List abbreviations; title: More on processing arbitrarily large data. More self-referential data definitions; title: Mutually referential data definitions; title: Development through iterative refinement; title: Processing two complex pieces of data; title: Local definitions and lexical scope; title: Abstracting designs. Similarities in definitions; title: Functions are values; title: Designing abstractions from examples; title: Designing abstractions with first-class functions; title: Mathematical examples; title: Defining functions on the fly; title: Generative recursion. A new form of recursion; title: Designing algorithms; title: Variations on a theme; title: Algorithms that backtrack; title: The cost of computing and vectors; title: Accumulating knowledge. The loss of knowledge; title: Designing accumulator-style functions; title: More uses of accumulation; title: The nature of inexact numbers; title: Changing the state of variables. Memory for functions; title: Assignment to variables; title: Designing functions with memory; title: Examples of memory usage; title: The final syntax and semantics; title: Changing compound values. Encapsulation; title: Mutable structures; title: Designing functions that change structures; title: Equality; title: Changing structures, vectors, and objects.