SICP in Python
Introduction
1.
Chapter 1: Building Abstractions with Functions
1.1.
1.1 Introduction
1.2.
1.2 The Elements of Programming
1.3.
1.3 Defining New Functions
1.4.
1.4 Practical Guidance: The Art of the Function
1.5.
1.5 Control
1.6.
1.6 Higher-Order Functions
2.
Chapter 2: Building Abstractions with Objects
2.1.
2.1 Introduction
2.2.
2.2 Data Abstraction
2.3.
2.3 Sequences
2.4.
2.4 Mutable Data
2.5.
2.5 Object-Oriented Programming
2.6.
2.6 Implementing Classes and Objects
2.7.
2.7 Generic Operations
3.
Chapter 3: The Structure and Interpretation of Computer Programs
3.1.
3.1 Introduction
3.2.
3.2 Functions and the Processes They Generate
3.3.
3.3 Recursive Data Structures
3.4.
3.4 Exceptions
3.5.
3.5 Interpreters for Languages with Combination
3.6.
3.6 Interpreters for Languages with Abstraction
4.
Chapter 4: Distributed and Parallel Computing
4.1.
4.1 Introduction
4.2.
4.2 Distributed Computing
4.3.
4.3 Parallel Computing
5.
Chapter 5: Sequences and Coroutines
5.1.
5.1 Introduction
5.2.
5.2 Implicit Sequences
5.3.
5.3 Coroutines
Powered by
GitBook
SICP in Python
Chapter 3: The Structure and Interpretation of Computer Programs
Contents
3.1 Introduction
3.1.1 Programming Languages
3.2 Functions and the Processes They Generate
3.2.1 Recursive Functions
3.2.2 The Anatomy of Recursive Functions
3.2.3 Tree Recursion
3.2.4 Example: Counting Change
3.2.5 Orders of Growth
3.2.6 Example: Exponentiation
3.3 Recursive Data Structures
3.3.1 Processing Recursive Lists
3.3.2 Hierarchical Structures
3.3.3 Sets
3.4 Exceptions
3.4.1 Exception Objects
3.5 Interpreters for Languages with Combination
3.5.1 Calculator
3.5.2 Parsing
3.6 Interpreters for Languages with Abstraction
3.6.1 The Scheme Language
3.6.2 The Logo Language
3.6.3 Structure
3.6.4 Environments
3.6.5 Data as Programs