Exercises 2.17-2.19 sicp