Rexx - Funzioni

Il codice in Rexx è normalmente suddiviso in Funzioni e Sottoprogrammi. L'uso delle funzioni aiuta a separare il codice in molte più unità logiche. Diamo un'occhiata a queste funzioni in dettaglio.

Definizione di una funzione

La sintassi di una dichiarazione di funzione è la seguente:

FunctionName: 
PARSE ARG arguement1, arguement2… arguementN 
Return value

Dove,

  • FunctionName - Questo è il nome assegnato alla funzione.

  • PARSE ARG - Queste sono parole chiave in Rexx che vengono utilizzate per menzionare che i parametri vengono passati alla funzione.

  • arguement1, arguement2… arguementN - Questi sono gli argomenti passati alla funzione.

  • Return value - Questo è il valore restituito dalla funzione.

Il seguente programma è un semplice esempio di come vengono utilizzate le funzioni in Rexx.

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

Le seguenti cose dovrebbero essere annotate sul programma di cui sopra:

  • Stiamo definendo una funzione chiamata add che accetta 2 parametri a e b.

  • La funzione utilizza l'istruzione return per restituire la somma di a e b.

  • L'istruzione exit deve essere utilizzata per indicare la fine del programma principale.

L'output del programma di cui sopra sarebbe il seguente:

11

Lavorare con gli argomenti

In Rexx, ci sono funzioni specifiche che possono essere fatte funzionare con gli argomenti. Diamo un'occhiata a un paio di questi argomenti.

arg

Questo metodo viene utilizzato per restituire il numero di argomenti definiti per la funzione.

Syntax -

arg()

Parameters - Nessuno

Return Value - Questo metodo restituisce il numero di argomenti definiti per la funzione.

Example -

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

say arg() 
return a + b

Output - Quando eseguiamo il programma sopra, otterremo il seguente risultato.

2 
11

arg (indice)

Questo metodo viene utilizzato per restituire il valore dell'argomento nella posizione specifica.

Syntax -

arg(index)

Parameter -

  • Index - Posizione indice dell'argomento da restituire.

Return Value - Questo metodo restituisce il valore dell'argomento nella posizione specifica.

Example -

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

say arg(1) 
return a + b

Output - Quando eseguiamo il programma sopra, otterremo il seguente risultato.

5 
11

Funzioni ricorsive

Una funzione o routine ricorsiva è quella che chiama se stessa. Qualsiasi funzione ricorsiva potrebbe essere codificata in un modo tradizionale non ricorsivo (o iterativo), ma a volte la ricorsione offre una migliore soluzione del problema. Non tutti i linguaggi di programmazione supportano la ricorsione; Rexx lo fa.

Vediamo un esempio del famoso programma fattoriale che utilizza funzioni ricorsive in 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 )

L'output del programma sopra è il seguente:

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