The '''[[wp:Ackermann function|Ackermann function]]''' is a classic example of a recursive function, notable especially because it is not a [[wp:Primitive_recursive_function|primitive recursive function]]. It grows very quickly in value, as does the size of its call tree.
The Ackermann function is usually defined as follows:
:
Its arguments are never negative and it always terminates.
;Task:
Write a function which returns the value of . Arbitrary precision is preferred (since the function grows so quickly), but not required.
;See also:
* [[wp:Conway_chained_arrow_notation#Ackermann_function|Conway chained arrow notation]] for the Ackermann function.