Easy Tutorial
❮ Higher Order Functions Scala Break Statement ❯

Scala Function Nesting

Scala Functions

We can define functions within Scala functions, and functions defined within other functions are called local functions.

In the following example, we implement factorial operation and use a nested function:

object Test {
   def main(args: Array[String]) {
      println( factorial(0) )
      println( factorial(1) )
      println( factorial(2) )
      println( factorial(3) )
   }

   def factorial(i: Int): Int = {
      def fact(i: Int, accumulator: Int): Int = {
         if (i <= 1)
            accumulator
         else
            fact(i - 1, i * accumulator)
      }
      fact(i, 1)
   }
}

Running the above code, the output results are:

$ scalac Test.scala
$ scala Test
1
1
2
6

Scala Functions

❮ Higher Order Functions Scala Break Statement ❯