Recursive functions explained

In programming there are sometimes situations when you have to recursively call a function from itself. Such are factorial or retrieving children of tree nodes.