A recursive function definition has one or more base cases, meaning input(s) for which the function produces a result trivially (without recurring), and one or more recursive cases, meaning input(s) for which the program recurs (calls itself). For example, the factorial function can be defined recursively by the equations 0! = 1 and, for all n > 0, n! = n(n - 1)!. Neither equation by itself constitutes a complete definition; the first is the base case, and the second is the recursive case. Because the base cases break the chain of recursion, they are sometimes also called "terminating cases".