# Expansion $ comprenant des paramètres

Les expansions $ admettent l'utilisation de paramètres. La variable doit alors contenir des paramètres formels tels que $1, $2, $3, etc. Lors de l'expansion de la variable, les paramètres doivent être indiqués dans une liste et séparés par des virgules.

Exemple :

`Set 
 MUL=’$1*$2’;`

`Set   X=$(MUL(3,7)); //` renvoie '3\*7' dans X

`Let   X=$(MUL(3,7)); //` renvoie 21 dans X

Si le nombre de paramètres formels dépasse le nombre de paramètres réels, seuls les paramètres formels correspondant à des paramètres réels sont développés. Si le nombre de paramètres réels dépasse le nombre de paramètres formels, les paramètres réels superflus sont ignorés.

Exemple :

`Set 
 MUL=’$1*$2’;`

`Set   X=$(MUL); //` renvoie '$1\*$2' dans X

`Set   X=$(MUL(10)); //` renvoie '10\*$2' dans X

`Let   X=$(MUL(5,7,8)); //` renvoie 35 dans X

Le paramètre $0 renvoie le nombre de paramètres effectivement transmis par un appel.

Exemple :

`set 
 MUL='$1*$2 $0 par'; `

`set   X=$(MUL(3,7)); //` renvoie '3\*7 2 par' dans X