blob: 8a50bddf19c9a6b408d4e1e8fc327062b6a01d04 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
local M = {}
function M.src(path)
local str = debug.getinfo(2, "S").source:sub(2)
local src = str:match("(.*/)") or str:match("(.*\\)") or "./"
return src .. path
end
---@generic T, R
---@param array T[]
---@param func fun(T, i: integer): R
---@return R[]
function M.map(array, func)
local new_arr = {}
for i, v in ipairs(array) do
new_arr[i] = func(v, i)
end
return new_arr
end
---@generic T
---@param array T[]
---@param start integer
---@param stop? integer
---@return T[]
function M.slice(array, start, stop)
local new_arr = {}
stop = stop or #array
for i = start, stop do
table.insert(new_arr, array[i])
end
return new_arr
end
return M
|