(rec)
def fib(n: Long): Long = n match {
case 0 => 0
case 1 => 1
case _ => fib(n - 2) + fib(n - 1)
}
Slide 8
Slide 8 text
(tail rec)
def fibImpl(n: Long, a: Long, b: Long): Long = n match {
case 0 => a
case _ => fibImpl(n - 1, b, a + b)
}
def fib(n: Long): Long = {
fibImpl(n, 0, 1)
}
Slide 9
Slide 9 text
(mut rec)
def fib(n: Long): Long = n match {
case 0 => 0
case _ => fibS(n - 1)
}
def fibS(n: Long): Long = n match {
case 0 => 1
case _ => fib(n - 1) + fibS(n - 1)
}