Specifications

199
Description:
Creating a user-defined function
DEF FN...END DEF creates a user-defined function. The function definition block
between
DEF FN and END DEF is a set of some statements and functions.
Definition of a user-defined function should appear preceding a calling statement
of the user-defined function in a source program.
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 subrou-
tines.
DEF FN...END DEF 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 DEF
FN...END
DEF statement block or used as a dummyparameter 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
DEF FN...END DEF statements to a maximum of 10 levels.
When using the
DEF FN...END DEF 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 global variables whose current values are avail-
able.
EXIT DEF exits the function block prematurely and returns control to the position
immediately after the statement that called the user-defined function.
The block-format
DEF FN statement should be followed by END DEF which ends
the function block and returns control to the position immediately after the state-
ment that called the user-defined function.
Using Syntax 5 allows you to assign a return value for a user-defined function.
The type of
functionname should match that of a return value. If no return
value is assigned to
functionname, then the value 0 or a null string will be
returned for a numeric function or a string function, respectively.