Returning simple typed values from functions
Simple data types such as INTEGER
, DECIMAL
,
VARCHAR
are returned by value. When returning a simple typed value, the
runtime system pushes a copy of the data on the stack. The STRING
data type
is an exception to this rule: elements of this type are return by mutable reference: the whole
string value is not copied on the stack, only the reference to the string value is copied.
MAIN
DEFINE x INTEGER
LET x = int_add(10,20)
END MAIN
FUNCTION int_add(n1,n2)
DEFINE n1, n2 INTEGER
RETURN (n1+n2)
END FUNCTION