What is a Function?

A function is a sequence of instructions that can receive data, process it, and return a value. In REXX, there are several kinds of functions:

Regardless of the kind of function, all functions return a value to the program that issued the function call. To call a function, type the function name immediately followed by parentheses enclosing arguments to the function (if any). There can be no space between the function name and the left parenthesis.

function(arguments)

A function call can contain up to 20 arguments separated by commas. Arguments can be:

All functions must return values. When the function returns a value, the value replaces the function call. In the following example, the language processor adds the value the function returns to 7 and produces the sum.

SAY 7 + function(arguments)

A function call generally appears in an expression. Therefore a function call, like an expression, does not usually appear in an instruction by itself.

Example of a Function

Calculations that functions represent often require many instructions. For instance, the simple calculation for finding the highest number in a group of three numbers, might be written as follows:

Figure 27. Finding a Maximum Number
/***************************** REXX **********************************/
/*  This program receives three numbers as arguments and analyzes    */
/*  which number is the greatest.                                    */
/*********************************************************************/

 PARSE ARG number1, number2, number3 .

 IF number1 > number2 THEN
    IF number1 > number3 THEN
       greatest = number1
    ELSE
       greatest = number3
 ELSE
    IF number2 > number3 THEN
       greatest = number2
    ELSE
       greatest = number3

 RETURN greatest

Rather than writing multiple instructions every time you want to find the maximum of a group of three numbers, you can use a built-in function that does the calculation for you and returns the maximum number. The function is called MAX, and you can use it as follows:

MAX(number1,number2,number3,....)

To find the maximum of 45, -2, number, and 199 and put the maximum into the symbol biggest, write the following instruction:

biggest = MAX(45,-2,number,199)