# Scala - Recursion Functions

Recursion plays a big role in pure functional programming and Scala supports recursion functions very well. Recursion means a function can call itself repeatedly.

Try the following program, it is a good example of recursion where factorials of the passed number are calculated.

## Example

```object Demo {
def main(args: Array[String]) {
for (i <- 1 to 10)
println( "Factorial of " + i + ": = " + factorial(i) )
}

def factorial(n: BigInt): BigInt = {
if (n <= 1)
1
else
n * factorial(n - 1)
}
}
```

Save the above program in Demo.scala. The following commands are used to compile and execute this program.

## Command

```\>scalac Demo.scala
\>scala Demo
```

## Output

```Factorial of 1: = 1
Factorial of 2: = 2
Factorial of 3: = 6
Factorial of 4: = 24
Factorial of 5: = 120
Factorial of 6: = 720
Factorial of 7: = 5040
Factorial of 8: = 40320
Factorial of 9: = 362880
Factorial of 10: = 3628800
```
scala_functions.htm

## Useful Video Courses

Video

#### Scala Online Training

82 Lectures 7 hours

Video

#### Apache Spark with Scala - Hands On with Big Data

23 Lectures 1.5 hours

Video

#### Delta Lake with Apache Spark using Scala

52 Lectures 1.5 hours

Video

#### Apache Spark with Scala useful for Databricks Certification

76 Lectures 5.5 hours

Video

#### Machine Learning with Apache Spark 3.0 using Scala

69 Lectures 7.5 hours