To declare a global function:
Function
Identifier [ :
ReturnType ] (
Arguments )
...Statements...
End
ReturnType defaults to Void
if omitted.
Arguments is a comma separated list of parameter declarations.
To declare a lambda function:
...Lambda
[ :
ReturnType ]
(
Parameters )
...Statements...
End
...
Lambda declarations must appear within an expression, and therefore should not start on a new line.
For example:
Local myLambda:=Lambda()
Print "My Lambda!"
End
myLambda()
To pass a lambda to a function:
SomeFunc( Lambda()
Print "MyLambda"
End )
Note the closing )
after the End
to match the opening (
after SomeFunc
.
Monkey2 supports 'first class' functions.
This means function 'values' can be stored in variables and arrays, passed to other functions and returned from functions.