Scala递归函数 博客分类: Scala Scala递归函数
程序员文章站
2024-03-21 18:37:10
...
一 递归函数
在函数式编程中实现循环的一种技术。
例子:计算n!
def factorial (n:Int):Int =
if (n<=0) 1
else n * factorial(n-1)
二 尾递归函数
尾递归函数中所有递归形式的调用都出现在函数的末尾。
当编译器检测到一个函数调用时尾递归的时候,它就覆盖当前的活动记录而不是在栈中去创建一个新的。
三 代码
package test_first
object tailrec extendsApp{
@annotation.tailrec
def factorial(n:Int,m:Int):Int=
if(n<=0) m
else factorial(n-1,m*n)
println(factorial(5,1))
}
四 运行结果
120
推荐阅读
-
Scala实现快速排序 博客分类: Scala Scala快速排序
-
Scala递归函数 博客分类: Scala Scala递归函数
-
Scala reduceLeft与flodLeft 博客分类: Scala ScalareduceLeftflodLeft
-
scala语言的spark实现wordcount 博客分类: sparkscala
-
scala 查看版本号 博客分类: scala
-
scala json 序列化与反序列化 博客分类: scalajson
-
ErLang Map 函数的尾递归形式 / Final List 博客分类: Design Erlang
-
Scala类型 博客分类: Scala Scala类型
-
Java 接口 (interface) and Scala 特质 (trait) 博客分类: Java Scala interface trait
-
java获取某个点的时间戳 博客分类: java/guava/python/php/ruby/R/scala/groovy 时间戳