Using tail recursion
In the GetFactorial()
method we discussed previously, traditional recursion is used to calculate the factorial number. This recursion model performs the recursive call first and returns the value, and then it calculates the result. Using this recursion model, we won't get the result until the recursive call is finished.
Besides the traditional recursion model, we have another recursion called tail recursion. The tail call becomes the last thing in the function and it doesn't do anything after the recursion at all. Let's look at the following code, which we can find in the TailRecursion.csproj
project:
public partial class Program { public static void TailCall(int iTotalRecursion) { Console.WriteLine("Value: " + iTotalRecursion); if (iTotalRecursion == 0) { Console.WriteLine("The tail is executed"); return; } TailCall(iTotalRecursion - 1); } }
From the preceding...