Procedures are only one side of programming, data is the other. Next to the primitive numerical data objects which where used in the previous session, compound data objects can be used. Building abstractions using compount data objects is introduced, and some primitives used to manipulate compount data structures are described.
MUST | |||
SICP 2 | Building Abstractions with Data | 4.1 | Compound Data |
4.2 | Data Object | ||
4.3 | Data Abstraction | ||
4.4 | Abstraction Barriers | ||
4.5 | Generic Operators | ||
SICP 2.1 | Introduction to Data Abstraction | 4.6 | Data Abstraction |
4.7 | Selectors/Constructors | ||
SICP 2.1.1 | Example: Arithmetic Operators for Rational Numbers | 4.8 | Pairs, cons, car, cdr |
4.9 | List-structured Data | ||
SICP 2.1.2 | Abstraction Barriers | 4.10 | Abstraction Barriers |
SICP 2.2 | Hierarchical Data | 4.11 | Box-and-Pointer notation |
4.12 | Hierarchical Data | ||
SICP 2.2.1 | Representing Sequences | 4.13 | Sequence |
4.14 | list | ||
4.15 | car/cdr/cons interaction | ||
4.16 | length | ||
4.17 | append | ||
SICP 2.2.2 | Representing Trees | 4.18 | Sequence of Sequences |
4.19 | Tree | ||
4.20 | cdr/car on trees | ||
4.21 | Recursion and trees | ||
4.22 | Atoms | ||
4.23 | atom? | ||
SICP 2.3 | Symbols | 4.24 | Symbols as Data |
SICP 2.3.1 | Quotation: Need for Quote | 4.25 | Quoting |
4.26 | ' | ||
4.27 | quote | ||
SHOULD | |||
SICP 2.1.4 | Example: Interval Arithmetic | Instructive example of data abstraction and Abstraction Barriers | |
COULD | |||
SICP 2.1.3 | What is Meant by Data? | Is there a difference between data and procedures? |
6