Examples
Each example below is a complete program that was compiled with the released ruxc and run. Compile with ruxc file.rux out && ./out.
Sum of a range
fn main() -> int {
let mut i = 0;
let mut total = 0;
while i < 5 {
total = total + i;
i = i + 1;
}
print(to_str(total) + "
");
return 0;
}
return main(); Prints 10.
Factorial
fn factorial(n: int) -> int {
if n <= 1 {
return 1;
}
return n * factorial(n - 1);
}
fn main() -> int {
print(to_str(factorial(5)) + "
");
return 0;
}
return main(); Prints 120.
Struct and function
struct Point { x: int, y: int }
fn manhattan(p: Point) -> int {
return p.x + p.y;
}
fn main() -> int {
let p = Point { x: 3, y: 4 };
print(to_str(manhattan(p)) + "
");
return 0;
}
return main(); Prints 7.
Enum classification
enum Sign { Neg, Zero, Pos }
fn sign(n: int) -> Sign {
if n < 0 { return Sign.Neg; }
if n > 0 { return Sign.Pos; }
return Sign.Zero;
}
fn label(s: Sign) -> str {
match s {
Sign.Neg => { return "negative"; }
Sign.Zero => { return "zero"; }
Sign.Pos => { return "positive"; }
}
return "";
}
fn main() -> int {
print(label(sign(0 - 9)) + "
");
return 0;
}
return main(); Prints negative.