Rexx - Subroutines



In any programming language, the entire program is broken into logical modules. This makes it easier to write code that can be maintained easily. This is a basic requirement for any programming language.

In Rexx, modules can be written using Subroutines and functions. Lets look at the subroutines in detail.

Defining a Subroutine

The syntax of a function declaration is as follows −

FunctionName: 
   Statement#1 
   Statement#2 
   . 
   Statement#N

Where,

  • FunctionName − This is the name assigned to the subroutine.

  • Statement#1 .. Statement#N − These are the list of statements that make up the subroutine.

The following program is a simple example showing the use of subroutines.

/* Main program */ 
call add 
exit 
add: 
a = 5 
b = 10 
c = a + b 
say c 

The following things should be noted about the above program −

  • We are defining a subroutine called add.

  • The subroutine does a simple add functionality.

  • The exit statement has to be used to signify the end of the main program.

The output of the above program would be as follows −

15

Working with Arguments

It is also possible to work with arguments in Rexx. The following example shows how this can be achieved.

/* Main program */ 
call add 1,2 
exit 
add: 
PARSE ARG a,b 
c = a + b 
say c

The following things should be noted about the above program −

  • We are defining a subroutine called add which takes on 2 parameters.

  • In the subroutines, the 2 parameters are parsed using the PARSE and ARG keyword.

The output of the above program would be as follows −

3

Different Methods for Arguments

Lets look at some other methods available for arguments.

arg

This method is used to return the number of arguments defined for the subroutine.

Syntax −

arg() 

Parameters − None

Return Value − This method returns the number of arguments defined for the subroutine.

Example −

/* Main program */ 
call add 1,2 
exit 
add: 
PARSE ARG a,b 

say arg() 
c = a + b 
say c 

When we run the above program we will get the following result.

2 
3 

arg(index)

This method is used to return the value of the argument at the specific position.

Syntax −

arg(index)

Parameters

  • Index − Index position of the argument to be returned.

Return Value − This method returns the value of the argument at the specific position.

Example −

/* Main program */ 
call add 1,2 
exit 
add: 
PARSE ARG a,b 

say arg(1) 
c = a + b 
say c 

When we run the above program we will get the following result.

1 
3 
Advertisements