Recursion
- function that calls itself
- Applications: Dynamic Programming, Backtracking, Divide and Conquer
- Python
def factorial(n):
if n == 0:
return 1
return n * factorial(n - 1)
Tail Recursion
- A function is tail recursive if the function does not do anything after the last recursive call
- Modern compilers replace tail recursion with goto -> Tail call elimination
- Python
def fun(n):
if n <= 0:
return
print(n)
fun(n)
info
Python does not do tail call elimination