## What is recursive function ?

Recursive function is a function that calls itself in order to create a loop

## Example of recursive function

```
def sum(number):
if number == 0:
return 0
return number + sum(number - 1) # calls itself , which loops
print(sum(5))
```

In the above

*sum()* is a recursive function which calls it self.

When we call the
function sum with an integer 5, it recursively calls itself

```
return number + sum(number -
1)
```

, by decreasing

*number* passed to it by

*1*There is a condition

```
if
number == 0
```

, which checks the

*number* values each time it is called and returns 0
once it reaches 0.

This condition has to be kept to avoid the number to become negative and to
avoid the recursion to go to an infinite loop.

So

*the recursion function should have an
condition to terminate recursion and avoid infinite loop *The above recursion function
purpose can also be solved using python loops. Loops are faster than recursion

```
sum = 0
for i in range(5+1): # range(5+1) -> [0, 1, 2, 3, 4, 5]
sum += i
print(sum)
```

## Advantages of recursive function

- Recursive functions make the code looks clean reducing the code size
- Recursive functions are extremely useful when applying the same solution
- Recursive functions reduce unnecessary calling of function.

## Disadvantages of recursive function

- Recursive functions are not easy to debug
- Recursive functions takes more memory
- Recursive functions uses more processor time.