There are three main types of functions...
DEF FUNC X,Y
...
END
...has no return values. Doesn't have parenthesis.
DEF FUNC(X,Y)
...
RETURN A
END
...has a single return value. Has parenthesis.
DEF FUNC X,Y OUT A,B
...
END
...has multiple return values. Doesn't have parenthesis, but haves OUT.
COMMON DEF FUNC(FOO)
...
RETURN BAR
END
The COMMON specification allows a function to be called from a program slot other than the one it's in. It's common (ha!) to find it in libraries, engines and such.
Only if they have a single return value!
Using the examples I left previously, this is how you'd call each one.
FUNC 2,3
...for instructions with no return values.
A=FUNC(2,3)
...for functions with a single return value.
FUNC 2,3 OUT A,B
...for functions with multiple return values.