Velo by Example: Recursion

Velo supports recursive function calls. Combined with expression-based returns, recursive definitions are very concise.

A classic factorial function using recursion and inline if.

func factorial(int n) int {
    if n <= 1 then 1 else n * factorial(n - 1);
};

The Fibonacci sequence is a natural fit for recursive definitions.

func fib(int n) int {
    if n < 2 then n else fib(n - 1) + fib(n - 2);
};

Use let to bind the result and print it.

include "lang/terminal.vel";

let(any res = fib(15)) {
    term.println(res.str);
};
$ ./gradlew run --args="fibonacci-recursive.vel"
610