Rexx - Fonctions

Le code de Rexx est normalement divisé en fonctions et sous-programmes. L'utilisation de fonctions permet de séparer le code en de nombreuses unités logiques supplémentaires. Regardons ces fonctions en détail.

Définition d'une fonction

La syntaxe d'une déclaration de fonction est la suivante -

FunctionName: 
PARSE ARG arguement1, arguement2… arguementN 
Return value

Où,

  • FunctionName - C'est le nom attribué à la fonction.

  • PARSE ARG - Ce sont des mots-clés dans Rexx qui sont utilisés pour mentionner que des paramètres sont passés à la fonction.

  • arguement1, arguement2… arguementN - Ce sont les arguments passés à la fonction.

  • Return value - Il s'agit de la valeur renvoyée par la fonction.

Le programme suivant est un exemple simple d'utilisation des fonctions dans Rexx.

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

Les choses suivantes doivent être notées à propos du programme ci-dessus -

  • Nous définissons une fonction appelée add qui accepte 2 paramètres a et b.

  • La fonction utilise l'instruction return pour renvoyer la somme de a et b.

  • L'instruction exit doit être utilisée pour signifier la fin du programme principal.

La sortie du programme ci-dessus serait la suivante -

11

Travailler avec des arguments

Dans Rexx, il existe des fonctions spécifiques qui peuvent fonctionner avec des arguments. Examinons quelques-uns de ces arguments.

arg

Cette méthode est utilisée pour renvoyer le nombre d'arguments définis pour la fonction.

Syntax -

arg()

Parameters - Aucun

Return Value - Cette méthode renvoie le nombre d'arguments définis pour la fonction.

Example -

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

say arg() 
return a + b

Output - Lorsque nous exécutons le programme ci-dessus, nous obtiendrons le résultat suivant.

2 
11

arg (index)

Cette méthode est utilisée pour renvoyer la valeur de l'argument à la position spécifique.

Syntax -

arg(index)

Parameter -

  • Index - Position d'index de l'argument à renvoyer.

Return Value - Cette méthode renvoie la valeur de l'argument à la position spécifique.

Example -

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

say arg(1) 
return a + b

Output - Lorsque nous exécutons le programme ci-dessus, nous obtiendrons le résultat suivant.

5 
11

Fonctions récursives

Une fonction ou routine récursive est une fonction qui s'appelle elle-même. Toute fonction récursive peut être codée de manière non récursive traditionnelle (ou de manière itérative), mais parfois la récursivité offre une meilleure solution au problème. Tous les langages de programmation ne prennent pas en charge la récursivité; Rexx le fait.

Voyons un exemple du célèbre programme factoriel utilisant des fonctions récursives dans 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 )

La sortie du programme ci-dessus est la suivante -

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