A recursive function is a function that calls itself in its definition.
For example the mathematical function, factorial, defined by factorial(n) = n*(n-1)*(n-2)*...*3*2*1
. can be programmed as
def factorial(n):
#n here should be an integer
if n == 0:
return 1
else:
return n*factorial(n-1)
the outputs here are:
factorial(0)
#out 1
factorial(1)
#out 1
factorial(2)
#out 2
factorial(3)
#out 6
as expected. Notice that this function is recursive because the second return factorial(n-1)
, where the function calls itself in its definition.
Some recursive functions can be implemented using lambda, the factorial function using lambda would be something like this:
factorial = lambda n: 1 if n == 0 else n*factorial(n-1)
The function outputs the same as above.