Recursion
Learn how recursive function calls and call-stack unwinding work in NouvaLang.
1. Factorial Algorithm
A classic recursive mathematical definition where n! = n * (n - 1)! with base case n <= 1:
fun factorial(n: int) -> int {
if n <= 1 {
return 1;
}
return n * factorial(n - 1);
}
print("Factorial of 5 is:", factorial(5)); // 120
print("Factorial of 6 is:", factorial(6)); // 720
2. Fibonacci Sequence Algorithm
Double recursive branch calculation:
fun fibonacci(n: int) -> int {
if n <= 1 {
return n;
}
return fibonacci(n - 1) + fibonacci(n - 2);
}
for i in 0 to 8 {
print("fib(" + (i as str) + ") =", fibonacci(i));
}