dirty sicp solutions