Module:Iteration/doc: Difference between revisions
More actions
first version |
m odd number problem |
||
| Line 22: | Line 22: | ||
The functions contained therein are from very simple, just one parameter to pass, <br> | The functions contained therein are from very simple, just one parameter to pass, <br> | ||
to more complicated ones, where e.g. a pair of parameters needs kind of a flip-flop switch<br> | to more complicated ones, where e.g. a pair of parameters needs kind of a flip-flop switch<br> | ||
when always a tupel of e.g. an item and its correlated text needs to be passed. | when always a tupel of e.g. an item and its correlated text needs to be passed. <br> | ||
<br> | <br> | ||
When there are tuples, tripels etc. the <tt>table.insert</tt> occurs, when the last element is prozessed;<br> | |||
this performs problems when the last group is incomplete – it should be finished with empty values <br> | |||
to trigger the <tt>table.insert</tt>. The check with <tt>table.maxn</tt> seems not to work correctly ? | |||
<br> | <br> | ||
Revision as of 12:19, 29 January 2020
This module contains the functions for different templates, solving their iteration problem
- The wikipedia template coding does not support the repetitive processing of a parameter set,
- which leads often to a very primitive and long chain of parameter checks in the kind of
{{#if:{{{1|}}} | perform an action with parameter 1 }} {{#if:{{{2|}}} | perform an action with parameter 2 }} {{#if:{{{3|}}} | perform an action with parameter 3 }} {{#if:{{{4|}}} | perform an action with parameter 4 }} ••• ••• {{#if:{{{33|}}} perform an action with parameter 33 }}
with the disadvantage that such a construct will fail as soon as there comes a 34nd parm.
I always thought that with Lua and its for loops this iterations should be possible, somehow.
After long searching without any success and without an idea how to perform it, I asked at several forums
and got finally from User:Trappist the monk the helping hint to solve it with a control structure like
local out = {}
for i, v in ipairs (args) do
table.insert (out, frame:expandTemplate{ title = title, args = v })
end
return table.concat (out)
The functions contained therein are from very simple, just one parameter to pass,
to more complicated ones, where e.g. a pair of parameters needs kind of a flip-flop switch
when always a tupel of e.g. an item and its correlated text needs to be passed.
When there are tuples, tripels etc. the table.insert occurs, when the last element is prozessed;
this performs problems when the last group is incomplete – it should be finished with empty values
to trigger the table.insert. The check with table.maxn seems not to work correctly ?