Functions are the unit of code: they take a fixed set of arguments, and return a value. There are no optional arguments.
Defining Functions
Functions are defined with a function
declaration:
function fib(n: Nat64): Nat64 is
if n < 2 then
return n;
else
return fib(n - 1) + fib(n - 2);
end if;
end;
All functions have to return a value. When a function returns nothing useful
(the equivalent of a void
function in C), you can return a value of the Unit
type:
function launchMissiles(): Unit is
openSilo();
launch();
return nil;
end;
Calling Functions
Function call syntax should be familiar, the function fib
above can be called
with positional arguments:
fib(30)
or with named arguments:
fib(n => 30)