Extension:LoopFunctions/fr

L'extension LoopFunctions permet une fonctionnalité de boucle limitée dans le wikicode, où une variable ( par défaut) est remplacée par le numéro courant d'itération de la boucle. La variable peut être utilisée dans un texte simple ou un lien. Le résultat de l'ensemble de la boucle peut également être inséré dans une expression, par exemple pour calculer une factorielle. Cependant, le corps de boucle est évalué avant de remplacer la variable, de sorte qu'un calcul à l'intérieur de ce corps de boucle en fonction de la valeur de la variable, n'est pas possible.

#for
Où n est le nombre d'itérations et le texte est le texte à répéter.

Si, après l'expansion des modèles, des fonctions de parser et des variables, le texte contient le texte  ou ce qui est défini par le troisième paramètre, il sera remplacé par l'itération actuelle, à partir de 1.



Utilisation dans les modèles
En appelant le modèle, si le modèle foo contient: , cela donnera le wikicode :



Utilisation pour le calcul
Total des carrés de 1^2 à 5^2 : donne 55

Factorielle 6 (6!): donne 720

Limitation
Dans le corps de boucle, les modèles, les fonctions d'analyse et les variables sont expansées avant de remplacer la variable d'index par ses valeurs, à savoir :


 * Paramètre d'une fonction d'analyse basé sur la variable d'index :
 * Le code donne  ; le résultat est dans ce cas le même que lorsque la répétition a été faite en premier, puis l'évaluation de chaque élément.
 * Le code donne  ; le résultat n'est pas le même dans ce cas, parce que   est changé en , et donc il n'est pas traité comme une variable d'index.
 * L'application de #expr à une expression contenant la variable d'index ne fonctionne pas : l'expansion de #expr dans par exemple donne le texte qui sera répété :


 * Nom du modèle fonction de la variable d'index :
 * Le code donne :
 * Template:a1 Template:a2 Template:a3 si le modèle avec le nom littéral  n'existe pas. Le corps de boucle est évalué comme Template:a$n$, après quoi la fonction de la boucle le répète en remplaçant.
 * le résultat de si le modèle avec le nom littéral   existe. C'est-à-dire que le contenu est répété inchangé.


 * Limitation combinée avec : Within the loop a variable can be assigned a value depending on the loop variable, and the value of this variable can be retrieved.
 * However, it seems that within the loop the variable cannot be assigned a new value depending on its own current value. Instead the value on entering the loop is taken.

#foreach
Ne fonctionne que s'il est utilisé par un modèle.

The mask is a string in the format prefixsuffix where  can be changed via the replacement parameter. The function #foreach, called inside a template, will produce the text for $n$ = 1, 2, 3,... as long as prefixsuffix is a template parameter defined in the template call.

If the text contains the text  or what is defined by the third parameter, that will be replaced by the current value of.

It seems that the whole call of #foreach is ignored if the loop body contains a template call or a parser function call, or if the loop body does not contain.

Exemple
Calling the template using the template foo, containing:  will result in the expanded wikitext   and hence the output:
 * foo1_bar = b
 * foo2_bar = a

Since  is not defined,   is not listed either; neither are a and , the parameter names which exist but do not match the pattern.



Utilisation sans préfixe ou suffixe
The code call Template:Showpars containing  and gives:


 * 1 = abc
 * 2 = de
 * 3 = ijk

Content of a template that links to the pages given by the values of the unnamed parameters:

Installation


Voir aussi

 * m:Template:For