Examples

Each example below was compiled and run with RUDRA 1.1.0.

Sum of a range

fn main() {
    let mut i = 0;
    let mut total = 0;
    while i < 5 {
        total = total + i;
        i = i + 1;
    }
    print(total);
}

Prints 10.

Factorial

fn factorial(n: int) -> int {
    if n <= 1 {
        return 1;
    }
    return n * factorial(n - 1);
}
fn main() {
    print(factorial(5));
}

Prints 120.

Struct and function

struct Point { x: int, y: int }
fn manhattan(p: Point) -> int {
    return p.x + p.y;
}
fn main() {
    let p = Point { x: 3, y: 4 };
    print(manhattan(p));
}

Prints 7.

Enum classification

enum Sign { Neg, Zero, Pos }
fn sign(n: int) -> Sign {
    if n < 0 { return Neg; }
    if n > 0 { return Pos; }
    return Zero;
}
fn label(s: Sign) -> str {
    match s {
        Neg => { return "negative"; }
        Zero => { return "zero"; }
        Pos => { return "positive"; }
    }
}
fn main() {
    print(label(sign(-9)));
}

Prints negative.