Recursion in the Ackermann Function
The Ackermann function is a classic example of a function that is not "primitive recursive"—its evaluation cannot be "unwound" into simple loops. See how instances of the Ackermann function get evaluated by calling on others. The Ackermann function grows very rapidly. As its first argument increases, it effectively goes from addition, to multiplication, powers, power towers, etc.
The definition used here is
which is a slight modification of Wilhelm Ackermann's original 1926 function.