Recently I came to know about amazing concept of tail recursion optimization. If you are a computer scientist, you must be knowing what recursion is. It is a function calling itself multiple times until certain edge condition is reached. When an edge condition is reached, it returns the result at