Pairs

Exercise 1

Draw box-and-pointer diagrams for each of the following lists:

Exercise 2

Have DrScheme evaluate each of the following expressions. In each case, explain why Scheme does or does not use the dot notation when displaying the value.

Exercise 3

Draw a box-and-pointer representation of the value of each expression in the previous exercise.

Exercise 4

Define and test a procedure named cons-cell-count that takes any Scheme value and determines how many boxes would appear in its box-and-pointer diagram. (The data structure that is represented by such a box, or the region of a computer's memory in which such a structure is stored is called a cons cell. Every time the cons procedure is used, explicitly or implicitly, in the construction of a Scheme value, a new cons cell is allocated, to store information about the car and the cdr. Thus cons-cell-count also tallies the number of times cons was invoked during the construction of its argument.)

For example, the structure in the last box-and-pointer diagram in the reading contains seven cons-cells, so when you apply cons-cell-count to that structure, it should return 7. On the other hand, the string "sample" contains no cons-cells, so the value of (cons-cell-count "sample") is 0.

Use cons-cell-count to find out how many cons cells are needed to construct the list (0 (1 (2 (3 (4))))). Draw a box-and-pointer diagram of this list to check the answer.


This document is available on the World Wide Web as

http://www.cs.grinnell.edu/~gum/courses/151/labs/pairs.xhtml

created February 21, 1997
last revised August 12, 2001

John David Stone (stone@cs.grinnell.edu) and Ben Gum (gum@cs.grinnell.edu)