update sicp: answer(2.46)