# ARIBAS 1.53

Version of implementation ARIBAS of programming language ARIBAS

Bugfix release of ARIBAS.

Changes from previous version ARIBAS 1.50:

• bug fix in handling of `-pi` (previous version changed constant pi)
• bug fix in division of integer vectors with negative coefficients
• `for` loop can now handle >= 232 iterations
• fixed bug which occurred in ARIBAS 1.50 while parsing certain parenthized expressions

## Examples:

### Factorial - ARIBAS (54):

This example uses built-in `factorial` function.

ARIBAS uses integer type for variables by default, so type declaration can be omitted.

`group(0)` is used to cancel digit groups separation by underscores during output.

``````function fac0_16();
var n;
begin
for n := 0 to 16 do
writeln(n, "! = ", factorial(n): group(0));
end;
end;

fac0_16().
``````

### Factorial - ARIBAS (55):

This example uses recursive factorial definition.

Function name `fac` is used because `factorial` is reserved function name in ARIBAS.

ARIBAS uses integer type for variables by default, so type declaration can be omitted.

`group(0)` is used to cancel digit groups separation by underscores during output.

``````function fac(n);
begin
if (n = 0) then
return(1);
end;
return(n * fac(n - 1));
end;

function fac0_16();
var n;
begin
for n := 0 to 16 do
writeln(n, "! = ", fac(n): group(0));
end;
end;

fac0_16().
``````

### Hello, World! - ARIBAS (59):

``````writeln("Hello, World!");
``````

### Fibonacci numbers - ARIBAS (60):

This example uses recursive definition of Fibonacci numbers.

ARIBAS uses integer type for variables by default, so type declaration can be omitted.

`group(0)` is used to cancel digit groups separation by underscores during output.

``````function fib(n);
begin
if (n < 3) then
return(1);
end;
return(fib(n-1)+fib(n-2));
end;

function fib1_16();
var n;
begin
for n := 1 to 16 do
write(fib(n): group(0), ", ");
end;
writeln("...");
end;

fib1_16().
``````