Functions
Functions are procedures (custom blocks) that can return values (or structs). Functions are always **Run without screen refresh** and must be only called within **Run without screen refresh** procedures or functions to prevent undefined behavior. Functions must always terminate with a return statement. Using `stop_this_script` inside functions is undefined behavior.
Declaring a function
func my_function(x, y) { return $x + $y; }
func my_function(x, y) type_name { return type_name { ... }; }
Calling a function
say my_function(1, 2);
Source