84 lines
1.2 KiB
Lua
84 lines
1.2 KiB
Lua
Array = {}
|
|
Dict = {}
|
|
|
|
function Array.iter(arr, fn)
|
|
for _,v in ipairs(arr) do
|
|
fn(v)
|
|
end
|
|
end
|
|
|
|
function Array.map(arr, fn)
|
|
local t = {}
|
|
|
|
for _,v in ipairs(arr) do
|
|
table.insert(t, fn(v))
|
|
end
|
|
|
|
return t
|
|
end
|
|
|
|
function Array.mapRange(start, stop, fn)
|
|
local arr = {}
|
|
|
|
for i = start, stop do
|
|
arr[i] = fn(i)
|
|
end
|
|
|
|
return arr
|
|
end
|
|
|
|
function Array.iterRange(start, stop, fn)
|
|
for i = start, stop do
|
|
fn(i)
|
|
end
|
|
end
|
|
|
|
function Array.contains(arr, value)
|
|
for _,v in ipairs(arr) do
|
|
if v == value then return true end
|
|
end
|
|
|
|
return false
|
|
end
|
|
|
|
function Array.insert(arr, value, index)
|
|
local t = {}
|
|
|
|
for _, v in ipairs(arr) do
|
|
table.insert(t, v)
|
|
end
|
|
|
|
table.insert(t, index, value)
|
|
|
|
return t
|
|
end
|
|
|
|
function Dict.iter(t, fn)
|
|
for k,v in pairs(t) do
|
|
fn(k,v)
|
|
end
|
|
end
|
|
|
|
function Dict.map(t, fn)
|
|
local nt = {}
|
|
|
|
for k,v in pairs(t) do
|
|
nt[k] = fn(k,v)
|
|
end
|
|
|
|
return nt
|
|
end
|
|
|
|
function Dict.keysAsArray(t)
|
|
local nt = {}
|
|
|
|
for k,_ in pairs(t) do
|
|
table.insert(nt, k)
|
|
end
|
|
|
|
return nt
|
|
end
|
|
|
|
function Dict.isEmpty(t)
|
|
return next(t) == nil
|
|
end |