This is 4th day's Training Snippet, It helps me to understand higher
order functions and Tail recursion.
Also difference between call by value and call by name.