Recursion is a useful technique borrowed from mathematics
Recursive code is generally shorter and easier to write than iterative code
Recursion is most useful for tasks that can be defined in terms of similar subtasks for example sort, search, and traversal problem often have simple recursive solutions