2025-08-03 03:39:42 +03:00

37 lines
711 B
Lua

local P = {}
---List generator
---@generic T
---@param count integer
---@param generator fun(i: integer): T
---@return T[]
function P.generateList(count, generator)
if count <= 0 then return {} end
local xs = {}
for i = 0, count - 1, 1 do
xs[i] = generator(i)
end
return xs
end
--- Returns the sign of a number
--- @param number number
--- @return -1 | 0 | 1
function P.sign(number)
return (number > 0 and 1) or (number == 0 and 0) or -1
end
--- Applies a side effect for each element of a table
--- @generic T
--- @param table {[any] : T}
--- @param fn fun(el: T): nil
function P.each(table, fn)
for _, value in ipairs(table) do
fn(value)
end
end
return P