Rexx - 函数



Rexx 中的代码通常被分成函数和子程序。使用函数有助于将代码分割成更多逻辑单元。让我们详细了解这些函数。

定义函数

函数声明的语法如下:

FunctionName: 
PARSE ARG arguement1, arguement2… arguementN 
Return value 

其中,

  • FunctionName - 这是分配给函数的名称。

  • PARSE ARG - 这些是 Rexx 中的关键字,用于表示正在向函数传递参数。

  • arguement1, arguement2… arguementN - 这些是传递给函数的参数。

  • 返回值 - 这是函数返回的值。

以下程序是一个简单的示例,演示了如何在 Rexx 中使用函数。

/* Main program */ 
say add(5,6) 
exit 
add: 
PARSE ARG a,b 
return a + b 

关于以上程序,应注意以下几点:

  • 我们正在定义一个名为 add 的函数,它接受 2 个参数 a 和 b。

  • 该函数使用 return 语句返回 a 和 b 的和。

  • 必须使用 exit 语句来表示主程序的结束。

以上程序的输出如下:

11

使用参数

在 Rexx 中,有一些特定的函数可以与参数一起使用。让我们来看几个这样的参数。

arg

此方法用于返回为函数定义的参数数量。

语法 -

arg() 

参数 - 无

返回值 - 此方法返回为函数定义的参数数量。

示例 -

/* Main program */ 
say add(5,6) 
exit 
add: 
PARSE ARG a,b 

say arg() 
return a + b 

输出 - 当我们运行以上程序时,将得到以下结果。

2 
11 

arg(index)

此方法用于返回特定位置的参数值。

语法 -

arg(index)

参数 -

  • 索引 - 要返回的参数的索引位置。

返回值 - 此方法返回特定位置的参数值。

示例 -

/* Main program */ 
say add(5,6) 
exit 
add: 
PARSE ARG a,b 

say arg(1) 
return a + b 

输出 - 当我们运行以上程序时,将得到以下结果。

5 
11 

递归函数

递归函数或例程是指调用自身的函数。任何递归函数都可以以传统的非递归方式(或迭代方式)进行编码,但有时递归提供了更好的问题解决方案。并非所有编程语言都支持递归;Rexx 支持。

让我们看看一个使用 Rexx 中递归函数的著名阶乘程序示例。

/* Main program */ 
do n = 1 to 5 
say 'The factorial of' n 'is:' factorial( n ) 
end 
return  

/* Function to get factorial */ 
factorial : procedure 
n = arg(1) 
if n = 1 then 
return 1 
return n * factorial( n - 1 ) 

以上程序的输出如下:

The factorial of 1 is: 1
The factorial of 2 is: 2 
The factorial of 3 is: 6 
The factorial of 3 is: 24 
The factorial of 3 is: 120 
广告