Recursion is a common technique that is often associated with functional programming. The basic idea is this — given a difficult problem, try to find procedure that turns the original problem into a ...