SICP Exercise 2.2