Answer ex2.45
Implement ch2.2.4's examples (in progress)
Answer ex2.46
Answer ex2.47