• Welcome to the Kancolle Wiki!
  • If you have any questions regarding site content, account registration, etc., please visit the KanColle Wiki Discord

Difference between revisions of "Module:Core"

From Kancolle Wiki
Jump to navigation Jump to search
m
Line 12: Line 12:
 
end
 
end
 
return m[f](m, unpack(args))
 
return m[f](m, unpack(args))
 +
end
 +
 +
function Utils.find(tbl, v_, k_)
 +
for _, v in pairs(tbl) do
 +
if k_ and v[k_] == v_ or not k_ and v == v_ then
 +
return true
 +
end
 +
end
 +
return false
 +
end
 +
 +
function Utils.map(tbl, fn)
 +
local result = {}
 +
for i, v in pairs(tbl) do
 +
result[i] = fn(v)
 +
end
 +
return result
 +
end
 +
 +
function Utils.filter(tbl, pred)
 +
local result = {}
 +
for i, v in pairs(tbl) do
 +
if pred(v) then
 +
result[i] = v
 +
end
 +
end
 +
return result
 
end
 
end
  
 
return Utils
 
return Utils

Revision as of 10:57, 14 January 2016

Documentation for this module may be created at Module:Core/doc

local Utils = {}

function Utils.method(frame)
	local m = require("Module:" .. frame.args[1])
	local f = frame.args[2]
	local args = {}
	for k, v in pairs(frame.args) do
		if type(k) == "number" and k >= 3 and type(v) == "string" then
			table.insert(args, v)
		end
	end
	return m[f](m, unpack(args))
end

function Utils.find(tbl, v_, k_)
	for _, v in pairs(tbl) do
		if k_ and v[k_] == v_ or not k_ and v == v_ then
			return true
		end
	end
	return false
end

function Utils.map(tbl, fn)
	local result = {}
	for i, v in pairs(tbl) do
		result[i] = fn(v)
	end
	return result
end

function Utils.filter(tbl, pred)
	local result = {}
	for i, v in pairs(tbl) do
		if pred(v) then
			result[i] = v
		end
	end
	return result
end

return Utils