MIT sicp 2005 project 2: problem 7