8.10

12 Programming with State (in Both Pyret and Python)

    12.1 State, Change, and Testing

      12.1.1 Example: Bank Accounts

      12.1.2 Testing Functions that Mutate Data

      12.1.3 Aliasing

      12.1.4 Data Mutation and the Directory

        12.1.4.1 Introducing the Heap

        12.1.4.2 Basic Data and the Heap

    12.2 Understanding Equality

      12.2.1 Equality of Data

      12.2.2 Different Equality Operations

        12.2.2.1 Equality in Python

        12.2.2.2 Equality in Pyret

    12.3 Arrays and Lists in Memory

    12.4 Cyclic Data

      12.4.1 Creating Cyclic Data

      12.4.2 Testing Cyclic Data

      12.4.3 Cycles in Practice

    12.5 Modifying Variables

      12.5.1 Modifying Variables in Memory

      12.5.2 Variable Updates and Aliasing

      12.5.3 Updating Variables versus Updating Data Fields

      12.5.4 Updating Parameters in Function Calls

      12.5.5 Updating Top-Level Variables within Function Calls

      12.5.6 The Many Roles of Variables