diff --git a/lang/spec.html b/lang/spec.html index e248333e..e816f23b 100644 --- a/lang/spec.html +++ b/lang/spec.html @@ -1745,7 +1745,6 @@
function-type-descriptor :=function
function-signature function-signature :=(
param-list)
return-type-descriptor -return-type-descriptor := [returns
[annots] type-descriptor ]
A function is a part of a program that can be explicitly executed. In Ballerina, @@ -1753,14 +1752,7 @@
-When the execution of a function returns to its caller, it returns exactly one
-value. A function that would in other programming languages not return a value
-is represented in Ballerina by a function returning ()
. Note that
-the function definition does not have to explicitly return ()
; a
-return statement or falling off the end of the function body will implicitly
-return ()
.
-
param-list := required-params [,
defaultable-params] [,
rest-param] @@ -1847,6 +1839,22 @@Functions
make use of arguments specified both by position and by name, is described in more detail in the section on function calls. +return-type-descriptor := [+returns
[annots] type-descriptor ] ++When the execution of a function returns to its caller, it returns exactly one +value. A function that would in other programming languages not return a value +is represented in Ballerina by a function returning
+()
. Note that +the function definition does not have to explicitly return()
; a +return statement or falling off the end of the function body will implicitly +return()
. ++The value returned by a function will belong to the type specified in the +return-type-descriptor. An empty return-type-descriptor is equivalent to +
returns ()
. +Function types are covariant in their return types and contravariant in the type of their parameter lists. More precisely, a function type with return type R and