SICP ~q1.4