NouvaLang v0.1.0
GitHub

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));
}