TY - BOOK AU - Felleisen,Matthias TI - How to design programs: an introduction to programming and computing SN - 0262062186 AV - QA 76.6 .H697 2001 PY - 2001/// CY - Cambridge, Mass. PB - MIT Press KW - Computer programming KW - Electronic data processing N1 - Includes bibliographical references and index; Processing simple forms of data. Students, teachers, and computers -- Numbers, expressions, simple programs -- Programs are function plus variable definitions -- Conditional expressions and functions -- Symbolic information -- Compound data, part 1: structures -- The varieties of data -- Syntax and semantics -- Processing arbitrarily large data. Compound data, part 2: lists -- More on processing lists -- Natural numbers -- Composing functions, revisited again -- List abbreviations -- More on processing arbitrarily large data. More self-referential data definitions -- Mutually referential data definitions -- Development through iterative refinement -- Processing two complex pieces of data -- Local definitions and lexical scope -- Abstracting designs. Similarities in definitions -- Functions are values -- Designing abstractions from examples -- Designing abstractions with first-class functions -- Mathematical examples -- Defining functions on the fly -- Generative recursion. A new form of recursion -- Designing algorithms -- Variations on a theme -- Algorithms that backtrack -- The cost of computing and vectors -- Accumulating knowledge. The loss of knowledge -- Designing accumulator-style functions -- More uses of accumulation -- The nature of inexact numbers -- Changing the state of variables. Memory for functions -- Assignment to variables -- Designing functions with memory -- Examples of memory usage -- The final syntax and semantics -- Changing compound values. Encapsulation -- Mutable structures -- Designing functions that change structures -- Equality -- Changing structures, vectors, and objects UR - http://www.loc.gov/catdir/toc/fy032/00048169.html ER -