Rexx - Funciones
El código en Rexx normalmente se divide en funciones y subrutinas. El uso de funciones ayuda a segregar el código en muchas más unidades lógicas. Veamos estas funciones en detalle.
Definición de una función
La sintaxis de una declaración de función es la siguiente:
FunctionName:
PARSE ARG arguement1, arguement2… arguementN
Return value
Dónde,
FunctionName - Este es el nombre asignado a la función.
PARSE ARG - Estas son palabras clave en Rexx que se utilizan para mencionar que los parámetros se pasan a la función.
arguement1, arguement2… arguementN - Estos son los argumentos que se pasan a la función.
Return value - Este es el valor devuelto por la función.
El siguiente programa es un ejemplo simple de cómo se utilizan las funciones en Rexx.
/* Main program */
say add(5,6)
exit
add:
PARSE ARG a,b
return a + b
Se deben tener en cuenta las siguientes cosas sobre el programa anterior:
Estamos definiendo una función llamada sumar que acepta 2 parámetros ay b.
La función usa la instrucción return para devolver la suma de ay b.
La declaración de salida debe usarse para indicar el final del programa principal.
El resultado del programa anterior sería el siguiente:
11
Trabajar con argumentos
En Rexx, hay funciones específicas que pueden trabajar con argumentos. Veamos algunos de esos argumentos.
arg
Este método se utiliza para devolver el número de argumentos definidos para la función.
Syntax -
arg()
Parameters - Ninguno
Return Value - Este método devuelve el número de argumentos definidos para la función.
Example -
/* Main program */
say add(5,6)
exit
add:
PARSE ARG a,b
say arg()
return a + b
Output - Cuando ejecutamos el programa anterior obtendremos el siguiente resultado.
2
11
arg (índice)
Este método se utiliza para devolver el valor del argumento en la posición específica.
Syntax -
arg(index)
Parameter -
Index - Posición de índice del argumento a devolver.
Return Value - Este método devuelve el valor del argumento en la posición específica.
Example -
/* Main program */
say add(5,6)
exit
add:
PARSE ARG a,b
say arg(1)
return a + b
Output - Cuando ejecutamos el programa anterior obtendremos el siguiente resultado.
5
11
Funciones recursivas
Una función o rutina recursiva es aquella que se llama a sí misma. Cualquier función recursiva podría codificarse de una forma tradicional no recursiva (o iterativa), pero a veces la recursividad ofrece una mejor solución al problema. No todos los lenguajes de programación admiten la recursividad; Rexx lo hace.
Veamos un ejemplo del famoso programa factorial que usa funciones recursivas en 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 )
El resultado del programa anterior es el siguiente:
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