SICP/chapter_4: exercise 01~23