We can define the function in the Scala function, and the function defined in the function is called the local function.
In the following example, we implement factorial operations and use embeddedfunctions:
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) } } Execute the above code, and the output is as follows:
$ scalac Test.scala $ scala Test 1 1 2 6