Specifications
215
Description:
■ Creating a user-defined function
FUNCTION...END FUNCTION creates a user-defined function. The function defini-
tion block between
FUNCTION and END FUNCTION is a set of some statements
and functions.
• You cannot make double definition to a same function name.
• This statement block should not be defined in the block-structured statements
(
DEF FN...END DEF, FOR...NEXT, FUNCTION...END FUNCTION, IF...THEN
...ELSE...END
IF, SELECT...CASE...END SELECT, SUB...END SUB and
WHILE...WEND), in the error-handling routine, event-handling routine, or in the
subroutines.
•
FUNCTION...END FUNCTION functions can be recursive.
• In defining a string function, you can specify the maximum
stringlength. If
its specification is omitted, the default value of 40 characters takes effect.
• dummyparameter, which corresponds to the variable having the same name in
the function definition block, is a local variable valid only in that block. Therefore,
if a variable having the same name as dummyparameter is used outside
FUNCTION...END FUNCTION statement block or used as a dummyparame-
ter
of any other function in the same program, then it will be independently
treated.
• In user-defined functions, you can call other user-defined functions. You can nest
FUNCTION...END FUNCTION statements to a maximum of 10 levels.
• When using the
FUNCTION...END FUNCTION together with block-structured
statements (
DEF FN...END DEF, FOR...NEXT, FUNCTION...END FUNCTION,
IF…THEN...ELSE...END IF, SELECT...CASE...END SELECT, SUB...END SUB
and WHILE...WEND), you can nest them to a maximum of 30 levels.
• If variables other than
dummyparameter(s) are specified in the function defini-
tion block, they will be treated as local variables whose current values are avail-
able only in that function definition block, unless PRIVATE or GLOBAL is
specified.
• EXIT FUNCTION exits the function block prematurely and returns control to the
position immediately after the statement that called the user-defined function.
• Using Syntax 5 allows you to assign a return value for a user-defined function.
The type of
funcname should match that of a return value. If no return value is
assigned to
funcname, then the value 0 or a null string will be returned for a
numeric function or a string function, respectively.
■ Calling a user-defined function
funcname calls the function.
• The number of
realparameters should be equal to that of dummyparame-
ter
s, and the types of the corresponding variables used in those parameters
should be identical.