Rexx - Funções

O código em Rexx é normalmente dividido em funções e sub-rotinas. O uso de funções ajuda a segregar o código em muitas unidades lógicas. Vamos examinar essas funções em detalhes.

Definindo uma função

A sintaxe de uma declaração de função é a seguinte -

FunctionName: 
PARSE ARG arguement1, arguement2… arguementN 
Return value

Onde,

  • FunctionName - Este é o nome atribuído à função.

  • PARSE ARG - São palavras-chave no Rexx que são usadas para mencionar que os parâmetros estão sendo passados ​​para a função.

  • arguement1, arguement2… arguementN - Esses são os argumentos passados ​​para a função.

  • Return value - Este é o valor retornado pela função.

O programa a seguir é um exemplo simples de como as funções são usadas no Rexx.

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

As seguintes coisas devem ser observadas sobre o programa acima -

  • Estamos definindo uma função chamada add que aceita 2 parâmetros a e b.

  • A função usa a instrução return para retornar a soma de a e b.

  • A instrução de saída deve ser usada para significar o fim do programa principal.

A saída do programa acima seria a seguinte -

11

Trabalhando com Argumentos

No Rexx, existem funções específicas que podem ser feitas para trabalhar com argumentos. Vejamos alguns desses argumentos.

arg

Este método é usado para retornar o número de argumentos definidos para a função.

Syntax -

arg()

Parameters - nenhum

Return Value - Este método retorna o número de argumentos definidos para a função.

Example -

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

say arg() 
return a + b

Output - Quando executarmos o programa acima, obteremos o seguinte resultado.

2 
11

arg (índice)

Este método é usado para retornar o valor do argumento na posição específica.

Syntax -

arg(index)

Parameter -

  • Index - Posição do índice do argumento a ser retornado.

Return Value - Este método retorna o valor do argumento na posição específica.

Example -

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

say arg(1) 
return a + b

Output - Quando executarmos o programa acima, obteremos o seguinte resultado.

5 
11

Funções Recursivas

Uma função ou rotina recursiva é aquela que chama a si mesma. Qualquer função recursiva pode ser codificada de forma tradicional não recursiva (ou iterativamente), mas às vezes a recursão oferece uma solução de problema melhor. Nem todas as linguagens de programação suportam recursão; Rexx, sim.

Vamos ver um exemplo do famoso programa fatorial usando funções recursivas no 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 )

O resultado do programa acima é o seguinte -

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