For 10 points, divide and conquer algorithms, the Towers of Hanoi puzzle, and calculating the Fibonacci numbers are all tasks that are easily solved by what process, which involves a function calling itself until a base case is reached?
The Ackermann-Peter function is often used to test a compiler's ability to optimize this process, while a function to compute the Catalan numbers is easily coded using it. Languages such as Scheme require its "tail" variety to be used, which saves only the calling function's address, eliminating the need to save successive "frames" on the stack. For 10 points, divide and conquer algorithms, the Towers of Hanoi puzzle, and calculating the Fibonacci numbers are all tasks that are easily solved by what process, which involves a function calling itself until a base case is reached?
The Ackermann-Peter function is often used to test a compiler's ability to optimize this process, while a function to compute the Catalan numbers is easily coded using it.
{recursion}