Lists can be manipulated using iteration or recursion.
Operations on the tree can be implemented using recursion.
Very often, functional programming languages try to keep people from using assignments; in this view, it is better to use recursion to solve a problem.
Computer science allows for procedures to be defined by using recursion.
It can be implemented using iteration, or recursion.
You use recursion for certain data- sorting algorithms and things like that.
At first glance the equations seem to be using primitive recursion.
Therefore, there is no or little penalty of using these constructs compared with using recursion.
The following C code performs the mappings in both directions, using iteration and bit operations rather than recursion.
An example might be how to define ancestor, using recursion: