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 2: Building Abstractions with Objects
Contents
2.1 Introduction
2.1.1 The Object Metaphor
2.1.2 Native Data Types
2.2 Data Abstraction
2.2.1 Example: Arithmetic on Rational Numbers
2.2.2 Tuples
2.2.3 Abstraction Barriers
2.2.4 The Properties of Data
2.3 Sequences
2.3.1 Nested Pairs
2.3.2 Recursive Lists
2.3.3 Tuples II
2.3.4 Sequence Iteration
2.3.5 Sequence Abstraction
2.3.6 Strings
2.3.7 Conventional Interfaces
2.4 Mutable Data
2.4.1 Local State
2.4.2 The Benefits of Non-Local Assignment
2.4.3 The Cost of Non-Local Assignment
2.4.4 Lists
2.4.5 Dictionaries
2.4.6 Example: Propagating Constraints
2.5 Object-Oriented Programming
2.5.1 Objects and Classes
2.5.2 Defining Classes
2.5.3 Message Passing and Dot Expressions
2.5.4 Class Attributes
2.5.5 Inheritance
2.5.6 Using Inheritance
2.5.7 Multiple Inheritance
2.5.8 The Role of Objects
2.6 Implementing Classes and Objects
2.6.1 Instances
2.6.2 Classes
2.6.3 Using Implemented Objects
2.7 Generic Operations
2.7.1 String Conversion
2.7.2 Multiple Representations
2.7.3 Generic Functions