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