• 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 1: Building Abstractions with Functions

Contents

  • 1.1 Introduction
    • 1.1.1 Programming in Python
    • 1.1.2 Installing Python 3
    • 1.1.3 Interactive Sessions
    • 1.1.4 First Example
    • 1.1.5 Practical Guidance: Errors
  • 1.2 The Elements of Programming
    • 1.2.1 Expressions
    • 1.2.2 Call Expressions
    • 1.2.3 Importing Library Functions
    • 1.2.4 Names and the Environment
    • 1.2.5 Evaluating Nested Expressions
    • 1.2.6 Function Diagrams
  • 1.3 Defining New Functions
    • 1.3.1 Environments
    • 1.3.2 Calling User-Defined Functions
    • 1.3.3 Example: Calling a User-Defined Function
    • 1.3.4 Local Names
    • 1.3.5 Practical Guidance: Choosing Names
    • 1.3.6 Functions as Abstractions
    • 1.3.7 Operators
  • 1.4 Practical Guidance: The Art of the Function
    • 1.4.1 Docstrings
    • 1.4.2 Default Argument Values
  • 1.5 Control
    • 1.5.1 Statements
    • 1.5.2 Compound Statements
    • 1.5.3 Defining Functions II: Local Assignment
    • 1.5.4 Conditional Statements
    • 1.5.5 Iteration
    • 1.5.6 Practical Guidance: Testing
  • 1.6 Higher-Order Functions
    • 1.6.1 Functions as Arguments
    • 1.6.2 Functions as General Methods
    • 1.6.3 Defining Functions III: Nested Definitions
    • 1.6.4 Functions as Returned Values
    • 1.6.5 Lambda Expressions
    • 1.6.6 Example: Newton's Method
    • 1.6.7 Abstractions and First-Class Functions
    • 1.6.8 Function Decorators