Changes
From Polyphasic Sleep Wiki
mLine 30:
Line 30:
− if type(v) == 'number' and v >= 1 and floor(v) == v and v < infinity then +
− return true
− else
− return false
− end
Line 48:
Line 44:
− if type(v) == 'number' and tostring(v) == '-nan' then +
− return true
− else
− return false
− end
Line 137:
Line 129:
− s = s:gsub('([%(%)%%%.%[%]%*%+%-%?%^%$])', '%%%1') +
− return s
Line 422:
Line 413:
− +
− +
+
Line 430:
Line 422:
− +
− +
− while t[i] ~= nil do +
− i = i + 1 +
− end+
− return i - 1 +
+
+
+
+
+
+
+
+
+
+
+
−
Changed protection level for "Module:TableTools": High-risk Lua module: bumping protection level due to high usage, plus the stability of the module. See https://en.wikipedia.org/w/index.php?title=Wikipedia:Requests_for_page_protection&oldid=983044034#Module:TableTools ([Edit=Require administrator access] (indefinite) [Move=Require administrator access] (indefinite))
--]]
--]]
function p.isPositiveInteger(v)
function p.isPositiveInteger(v)
return type(v) == 'number' and v >= 1 and floor(v) == v and v < infinity
end
end
--]]
--]]
function p.isNan(v)
function p.isNan(v)
return type(v) == 'number' and tostring(v) == '-nan'
end
end
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
--[[
--[[
-- This returns the length of a table, or the first integer key n counting from
-- Finds the length of an array, or of a quasi-array with keys such
-- 1 such that t[n + 1] is nil. It is similar to the operator #, but may return
-- as "data1", "data2", etc., using an exponential search algorithm.
-- 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.
-- Intended to be used on data loaded with mw.loadData. For other tables, use #.
-- Intended to be used on data loaded with mw.loadData. For other tables, use #.
-- frame.args.
-- frame.args.
--]]
--]]
function p.length(t)
local i = 1
function p.length(t, prefix)
-- requiring module inline so that [[Module:Exponential search]]
-- which is only needed by this one function
-- doesn't get millions of transclusions
local expSearch = require("Module:Exponential search")
checkType('length', 1, t, 'table')
checkType('length', 2, prefix, 'string', true)
return expSearch(function(i)
local key
if prefix then
key = prefix .. tostring(i)
else
key = i
end
return t[key] ~= nil
end) or 0
end
end
function p.inArray(arr, valueToFind)
function p.inArray(arr, valueToFind)
checkType("inArray", 1, arr, "table")
checkType("inArray", 1, arr, "table")