A classic recursion, factorial