Chapter 1. Building Abstractions with Procedures
1.1. The Elements of Programming
- Expressions
- Naming and the Environment
- Evaluating Combinations
- Compound Procedures
- The Substitution Model for Procedure Application
Conditional Expressions and Predicates (exercise 1.1, exercise 1.2, exercise 1.3, exercise 1.4, exercise 1.5)
Example: Square Roots by Newton's Method (exercise 1.6, exercise 1.7, exercise 1.8)
- Procedures as Black-Box Abstractions
1.2. Procedures and the Processes They Generate
Linear Recursion and Iteration (exercise 1.9, exercise 1.10)
Tree Recursion (exercise 1.11, exercise 1.12, exercise 1.13)
Orders of Growth (exercise 1.14, exercise 1.15)
Exponentiation (exercise 1.16, exercise 1.17, exercise 1.18, exercise 1.19)
Greatest Common Divisors (exercise 1.20)
Example: Testing for Primality (exercise 1.21, exercise 1.22, exercise 1.23, exercise 1.24, exercise 1.25, exercise 1.26, exercise 1.27, exercise 1.28)
1.3. Formulating Abstractions with Higher-Order Procedures
Procedures as Arguments (exercise 1.29, exercise 1.30, exercise 1.31, exercise 1.32, exercise 1.33)
Constructing Procedures Using Lambda (exercise 1.34)
Procedures as General Methods (exercise 1.35, exercise 1.36, exercise 1.37, exercise 1.38, exercise 1.39)
Procedures as Returned Values (exercise 1.40, exercise 1.41, exercise 1.42, exercise 1.43, exercise 1.44, exercise 1.45, exercise 1.46)