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