![]() |
|
< BACK How to Design Programs An Introduction to Programming and Computing Matthias Felleisen, Robert Bruce Findler, Matthew Flatt and Shriram Krishnamurthi Table of ContentsI. Processing Simple Forms of DataStudents, 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; Intermezzo 1: Syntax and Semantics II. Processing Arbitrarily Large Data Compound Data, Part 2: Lists; More onProcessing Lists; Natural Numbers; composing Functions, Revisited Again; Intermezzo 2: List Abbreviations III. 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; Intermezzo 3: Local Definitions and Lexical Scope IV. Abstracting Designs Similarities in Definitions; Functions Are Values; Designing Abstractions from Examples; Designing Abstractions with First-Class Functions; Mathematical Examples; Intermezzo 4: Defining Functions on the Fly V. Generative Recursion A New Form of Recursion; Designing Algorithms; Variations on a Theme; Algorithms that Backtrack; Intermezzo 5: The Cost of Computing and Vectors VI. Accumulating Knowledge The Loss of Knowledge; Designing Accumulator-Style Functions; More Uses of Accunulation; Intermezzo 6: The Nature of Inexact Numbers VII. Changing the State of Variables Memory for Functions; Assignment to Variables; Designing Functions with Memory; Examples of Memory Usage; Intermezzo 7: The Final Syntax and Semantics VIII. Changing Compound Values Encapsulation; Mutable Structures; Designing Functions that Change Structures; Equality; Changing Structures, Vectors and Objects |
| ||||||||||||||||||||
|
|||||||







