SICP Exercise 1.17