Extension:LoopFunctions/cs

Rozšíření LoopFunctions poskytuje funkce, které umožňují pracovat s wikitextem v opakovaných cyklech (smyčkách), kdy postupně nahrazují proměnnou (výchozí ) pořadovým číslem aktuálního cyklu. Tahle proměnná se může vyskytovat jak v běžném textu, tak v odkazu. Výsledek zpracování lze použít jako parametry jiného výrazu, například pro výpočet faktoriálu. Protože se kód smyčky generuje dřív, než dojde k nahrazení proměnné, není možné udělat výpočet již během zpracování v rámci jednoho cyklu.

#for
Kde n je počet cyklů a text řetězec, se kterým se bude pracovat.

Pokud bude po interpretaci šablon, parsovacích funkcí a proměnných text obsahovat řetězec  nebo , definovaným třetím parametrem, bude nahrazen pořadovým číslem aktuálního cyklu, které se počítají od 1.



Použití v šablonách
Volání šablony, pokud šablona foo obsahuje: , bude mít za následek wikitext:



Použití při výpočtech
Součet čtverců 1^2 až 5^2: dává 55

Faktor 6 (6!): dává 720

Omezení
V těle smyčky jsou šablony, funkce analyzátoru a proměnné rozbaleny před nahrazením proměnné indexu jejími hodnotami, tj.:


 * Parametr funkce analyzátoru v závislosti na proměnné indexu :
 * Kód dává  . Výsledek je v tomto případě stejný, jako když bylo nejprve provedeno opakování a poté hodnocení každé položky.
 * Kód dává  . Výsledek v tomto případě není stejný, protože   se změní na , a proto se s ním nezachází jako s proměnnou indexu.
 * Použití #expr na výraz obsahující proměnnou index nefunguje: Rozšíření #expr v např. dává text, takže tento text se bude opakovat:


 * Název šablony v závislosti na proměnné indexu :
 * Kód dává:
 * pokud šablona s doslovným názvem  neexistuje: Template:a1 Template:a2 Template:a3 (tělo smyčky je vyhodnoceno jako Template:a$n$, načež to funkce smyčky zopakuje a nahradí  ).
 * pokud šablona s doslovným názvem  existuje: výsledek, tj. obsah se opakuje beze změny.


 * Omezení v kombinaci s : V rámci smyčky lze proměnné přiřadit hodnotu v závislosti na proměnné smyčky a hodnotu této proměnné lze načíst.
 * Zdá se však, že v rámci smyčky proměnné nelze přiřadit novou hodnotu v závislosti na její vlastní aktuální hodnotě. Místo toho se bere hodnota při vstupu do smyčky.

#foreach
Funkce pouze pro použití šablony.

mask je řetězec ve formátu prefixsuffix, kde  lze změnit pomocí parametru nahrazení. Funkce #foreach, volaná uvnitř šablony, vytvoří text pro $n$ = 1, 2, 3,..., pokud je prefixsuffix parametr šablony definovaný ve volání šablony.

Pokud text obsahuje text  nebo to, co je definováno třetím parametrem, bude nahrazeno aktuální hodnotou.

Zdá se, že celé volání #foreach je ignorováno, pokud tělo smyčky obsahuje volání šablony nebo volání funkce analyzátoru, nebo pokud tělo smyčky neobsahuje.

Příklad
Volání šablony pomocí šablony foo obsahující:  bude mít za následek rozšířený wikitext   a tedy výstup:
 * foo1_bar = b
 * foo2_bar = a

Vzhledem k tomu, že  není definován, není uveden ani  ; ani a a , názvy parametrů, které existují, ale neodpovídají vzoru.



Použití bez prefixu či suffixu
Kód volaný Template:Showpars obsahující  a dává:


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

Obsah šablony, která odkazuje na stránky dané hodnotami nepojmenovaných parametrů:

Instalace


Související stránky

 * m:Template:For