Modulo:Math: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Annullate le modifiche di 181.60.152.103 (discussione), riportata alla versione precedente di Mαρκος
Etichetta: Rollback
Nessun oggetto della modifica
Etichetta: Annullato
Riga 1:
--[[
 
This module provides a number of basic mathematical operations.
 
]]
 
local yesno, getArgs -- lazily initialized
 
local p = {} -- Holds functions to be returned from #invoke, and functions to make available to other Lua modules.
local wrap = {} -- Holds wrapper functions that process arguments from #invoke. These act as intemediary between functions meant for #invoke and functions meant for Lua.
 
--[[
Helper functions used to avoid redundant code.
]]
 
local function err(msg)
-- Generates wikitext error messages.
return mw.ustring.format('<strong class="error">Formatting error: %s</strong>', msg)
end
 
local function unpackNumberArgs(args)
-- Returns an unpacked list of arguments specified with numerical keys.
local ret = {}
for k, v in pairs(args) do
if type(k) == 'number' then
table.insert(ret, v)
end
end
return unpack(ret)
end
 
local function makeArgArray(...)
-- Makes an array of arguments from a list of arguments that might include nils.
local args = {...} -- Table of arguments. It might contain nils or non-number values, so we can't use ipairs.
local nums = {} -- Stores the numbers of valid numerical arguments.
local ret = {}
for k, v in pairs(args) do
v = p._cleanNumber(v)
if v then
nums[#nums + 1] = k
args[k] = v
end
end
table.sort(nums)
for i, num in ipairs(nums) do
ret[#ret + 1] = args[num]
end
return ret
end
 
local function fold(func, ...)