My SICP solutions