exercises for Structure and interpretation of computer program