Chapter 6. Writing Subroutines And Functions; What Are Subroutines And Functions - IBM TSO/E REXX User Manual

Table of Contents

Advertisement

Chapter 6. Writing Subroutines and Functions

What are Subroutines and Functions? . . . . . . . . . . . . . . . . 69
When to Write Subroutines vs. Functions . . . . . . . . . . . . . . . 70
Writing a Subroutine . . . . . . . . . . . . . . . . . . . . . . . 70
Writing a Function . . . . . . . . . . . . . . . . . . . . . . . . 77
Summary of Subroutines and Functions. . . . . . . . . . . . . . . . 83
This chapter shows how to write subroutines and functions and compares their
differences and similarities.

What are Subroutines and Functions?

Subroutines and functions are routines made up of a sequence of instructions that
can receive data, process that data, and return a value. The routines can be:
Internal
External
In many aspects, subroutines and functions are the same; yet they are different in a
few major aspects, such as the way they are called and the way they return values.
v Calling a subroutine
v Calling a function
v Returning a value from a subroutine
© Copyright IBM Corp. 1988, 2001
Passing Information to a Subroutine . . . . . . . . . . . . . . . . 72
Passing Information by Using Variables . . . . . . . . . . . . . . 72
Passing Information by Using Arguments . . . . . . . . . . . . . 74
Receiving Information from a Subroutine . . . . . . . . . . . . . . 75
Passing Information to a Function . . . . . . . . . . . . . . . . . 79
Passing Information by Using Variables . . . . . . . . . . . . . . 79
Passing Information by Using Arguments . . . . . . . . . . . . . 81
Receiving Information from a Function . . . . . . . . . . . . . . . 83
Exercise - Writing a Function. . . . . . . . . . . . . . . . . . 83
The routine is within the current exec, marked by a label and used
only by that exec.
A program or exec in a member of a partitioned data set that can
be called by one or more execs. In order for an exec to call the
routine, the exec and the routine must be allocated to a system file,
for example SYSEXEC or SYSPROC, or be in the same PDS. For
more information about allocating to a system file, see "Appendix A.
Allocating Data Sets" on page 185.
To call a subroutine, use the CALL instruction followed by the subroutine name
(label or exec member name) and optionally followed by up to 20 arguments
separated by commas. The subroutine call is an entire instruction.
CALL subroutine_name argument1, argument2,...
Issuing a CALL to internal label names for REXX subroutines and functions that
are greater than eight characters, may have unintended results. Label names will
be truncated to eight characters.
To call a function, use the function name (label or exec member name)
immediately followed by parentheses that can contain arguments. There can be
no space between the function name and the parentheses. The function call is
part of an instruction, for example, an assignment instruction.
x = function(argument1, argument2,...)
69

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents