### 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