English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Рекурсивные функции играют важную роль в языках программирования функционального программирования.
Scala также поддерживает рекурсивные функции.
Рекурсивная функция означает, что функция может вызывать herself.
В данном примере используется рекурсивная функция для вычисления факториала:
object Test { def main(args: Array[String]) { for (i <- 1 to 10) println(i + " 的阶乘为: = " + factorial(i)) } def factorial(n: BigInt): BigInt = { if (n <= 1) 1 else n * factorial(n - 1) } }
Выполните следующий код, результат вывода будет:
$ scalac Test.scala $ scala Test Факториал числа 1 равен: = 1 Факториал числа 2 равен: = 2 Факториал числа 3 равен: = 6 Факториал числа 4 равен: = 24 Факториал числа 5 равен: = 120 Факториал числа 6 равен: = 720 Факториал числа 7 равен: = 5040 Факториал числа 8 равен: = 40320 Факториал числа 9 равен: = 362880 Факториал числа 10 равен: = 3628800