8.10

IV Programming With State

    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

    13 More Programming with State: Python

      13.1 Mutable Lists