Program declarations
Program declarations are declarations that are defined at the program level.
These declarations can be accessed by other programs (refer to the sections on Libraries).
Program declarations are also the entrypoint for data APIs: a data API exposes a program declaration, typically called main
.
For instance:
main(name: string) =
"Hello " + name
This example includes a program declaration called main
. The program declaration main
receives a parameter called name
. The body of the declaration is an expression that prepends the string "Hello "
to the name
passed as an argument.
Since main
is a program declaration, it can be loaded by other programs or used as a data API.
Program declarations have some restrictions:
- program declarations can only be declared at the top-level of a program, i.e. cannot be nested inside other declarations;
- program declarations cannot do recursive calls.
Refer also to the section on Let declarations and functions for the difference between different types of declarations and when to use program declarations.
Optional parameters
Program declarations can have optional parameters, e.g.:
main(name: string = "John") =
"Hello " + name
This program can be used without any argument, in which case the result is "Hello John", or with an argument.