My sicp exercise solutions