English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
As funções recursivas desempenham um papel importante em linguagens de programação funcional.
O Scala também suporta funções recursivas.
A função recursiva significa que a função pode se chamar a si mesma.
O exemplo acima usa a função recursiva para calcular o fatorial:
object Test { def main(args: Array[String]) { for (i <- 1 to 10) println(i + " o fatorial de: = " + fatorial(i) ) } def fatorial(n: BigInt): BigInt = { if (n <= 1) 1 else n * fatorial(n - 1) } }
Execute o código acima e o resultado será:
$ scalac Test.scala $ scala Test 1 o fatorial de: = 1 2 o fatorial de: = 2 3 o fatorial de: = 6 4 o fatorial de: = 24 5 o fatorial de: = 120 6 o fatorial de: = 720 7 o fatorial de: = 5040 8 o fatorial de: = 40320 9 o fatorial de: = 362880 10 o fatorial de: = 3628800