qb45advr.hlp (Topic list)
FUNCTION Procedures
  Modules and Procedures   FUNCTION Procedures   Contents   Index
──────────────────────────────────────────────────────────────────────────────
FUNCTION Procedures
 
FUNCTION procedures provide a powerful alternative to DEF FN functions.
FUNCTION procedures, like DEF FN functions, are used in expressions and
directly return a single value.
 
There are, however, important differences. A FUNCTION procedure
  ■ passes values by reference, so it can return additional values by
    changing variables in its argument list.
  ■ is not part of the module-level code.
  ■ can be used recursively - it can call itself.
  ■ may be used outside the module in which it is defined. You must include
    a DECLARE statement if you use a FUNCTION defined in another module.
    QuickBASIC automatically generates DECLARE statements for FUNCTION
    procedures defined and used in the same module. You can also enter the
    DECLARE yourself:
 
      DECLARE FUNCTION Log10(X)
      INPUT "Enter a number: ",Num
      PRINT "10 ^ Log10(";Num;") is" 10.0^Log10(Num)
      END
      ' Function to find log base 10 of a number using
      ' BASIC's built-in natural logarithm function.
      FUNCTION Log10 (X) STATIC
        Log10 = LOG(X) / LOG(10.0)
      END FUNCTION
 
See Also  DEF FN Functions