FOL IS STILL IN VERY VERY EARLY DEVELOPMENT
Everything in FOL follows the same structure:
declaration[options] name: type[options] = { implementation; };
declarations
use // imports, includes ...
def // preporcesr, macros, bocks, definitions ...
var // all variables: ordinal, container, complex, special
pro // subporgrams with side effects - procedures
fun // subporgrams with no side effects - functions
log // subporgrams with logic only - logicals
typ // new types: records, entries, blueprints ...
ali // aiased types and extensions
control flow
when(condition){ case (){}; case (){}; * {}; };
loop(condition){ };
example
use log: mod[std] = {fmt::log};
def argo: mod[init] = {
-var const: str = "something here"
+pro main: int = {
log.warn("Last warning!...");
.echo(add(3, 5));
}
fun add(a, b: int): int = { a + b }
}