Previous Up Next

9.6.1  Définir une fonction ayant un nombre variable d’arguments : args

args ou args(NULL) renvoie la liste des arguments d’une fonction sous forme d’une liste : l’élément d’indice 0 est la fonction, les suivants sont les arguments passés à la fonction. Cela permet de travailler avec des fonctions ayant un nombre d’arguments non fixé a l’avance.
Remarque on ne peut pas mettre args() mais args ou args(NULL) (NULL est obligatoire) on peut aussi utiliser (args)[0] pour désigner la fonction, (args)[1] pour désigner le nom du premier argument... mais il ne faut pas oublier les parenthèses autour de args!
On tape :

testargs():={ local y; y:=args; return y[1];}
testargs(12,5)

On obtient :

12

On tape :

somme():={
 local s,a;
 a:=args;
 s:=0;
 for (k:=1;k<size(a);k++){
 s:=s+a[k];
 }
 return s;
 }

puis :

somme(1,2,3,4)

On obtient :

10

Previous Up Next