my solution for sicp_book problems