sicp ~q1.10