Module:TableTools: Difference between revisions
from sandbox: another slight code simplification and a couple comment fixes
(Finally getting around to merging in Module:Array length (originally written by Mr. Stradivarius) over six months after writing the merged code, also minor code simplify per Dinoguy1000 on talk page) |
(from sandbox: another slight code simplification and a couple comment fixes) |
||
Line 129: | Line 129: | ||
local function cleanPattern(s) | local function cleanPattern(s) | ||
-- Cleans a pattern so that the magic characters ()%.[]*+-?^$ are interpreted literally. | -- Cleans a pattern so that the magic characters ()%.[]*+-?^$ are interpreted literally. | ||
return s:gsub('([%(%)%%%.%[%]%*%+%-%?%^%$])', '%%%1') | |||
end | end | ||
Line 415: | Line 414: | ||
--[[ | --[[ | ||
-- Finds the length of an array, or of a quasi-array with keys such | -- Finds the length of an array, or of a quasi-array with keys such | ||
-- as "data1", "data2", etc., using an | -- as "data1", "data2", etc., using an exponential search algorithm. | ||
-- It is similar to the operator #, but may return | -- It is similar to the operator #, but may return | ||
-- a different value when there are gaps in the array portion of the table. | -- a different value when there are gaps in the array portion of the table. | ||
Line 425: | Line 424: | ||
function p.length(t, prefix) | function p.length(t, prefix) | ||
-- requiring module inline so that [[Module: | -- requiring module inline so that [[Module:Exponential search]] | ||
-- which is only needed by this one function | -- which is only needed by this one function | ||
-- doesn't get millions of transclusions | -- doesn't get millions of transclusions |