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 : Dans la boucle, une variable peut recevoir une valeur fonction de l'indice de boucle et la valeur de cette variable peut être récupérée.
 * Cependant, il semble que dans la boucle, la variable ne peut pas recevoir une nouvelle valeur dépendant de sa propre valeur courante. Au lieu de cela, sa valeur à l'entrée de la boucle, est prise.

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

mask est une chaîne au format prefixsuffix où  peut être modifié via le paramètre de substitution. La fonction #foreach, appelée à l'intérieur d'un modèle, produira le texte pour $n$ = 1, 2, 3,... tant que prefixsuffix est un paramètre de modèle défini dans l'appel du modèle.

Si le texte contient le texte  ou ce qui est défini par le troisième paramètre, celui-ci sera remplacé par la valeur courante de.

Il semble que l'ensemble de l'appel à #foreach soit ignoré si le corps de boucle contient un appel de modèle ou un appel de fonction d'analyse syntaxique, ou si le corps de boucle ne contient pas.

Exemple
L'appel du modèle en utilisant le modèle foo, contenant  donnera le wikicode expansé   et donc la sortie :
 * foo1_bar = b
 * foo2_bar = a

Étant donné que  n'est pas défini,   n'est également pas répertorié; ni a et , les noms des paramètres qui existent mais qui ne correspondent pas au modèle.



Utilisation sans préfixe ou suffixe
Le code appelle Template:Showpars contenant  et donne :


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

Contenu d'un modèle qui lie les pages données par les valeurs des paramètres non nommés :

Installation


Voir aussi

 * m:Template:For