mirror of
https://github.com/TangentFoxy/lume.git
synced 2024-11-19 07:04:24 +00:00
Moved lume.invert() to be near lume.clone()
This makes the series of python-like functions (map, all, any, reduce, set, filter) consecutive in the source and readme, which seems like a more logical order.
This commit is contained in:
parent
8f4d1b158f
commit
2f388bc2c7
14
README.md
14
README.md
@ -115,13 +115,6 @@ an error is raised,
|
|||||||
lume.reduce({1, 2, 3}, function(a, b) return a + b end) -- Returns 6
|
lume.reduce({1, 2, 3}, function(a, b) return a + b end) -- Returns 6
|
||||||
```
|
```
|
||||||
|
|
||||||
### lume.invert(t)
|
|
||||||
Returns a copy of the table where the keys have become the values and the
|
|
||||||
values the keys.
|
|
||||||
```lua
|
|
||||||
lume.invert({a = "x", b = "y"}) -- returns {x = "a", y = "b"}
|
|
||||||
```
|
|
||||||
|
|
||||||
### lume.set(t [, retainkeys])
|
### lume.set(t [, retainkeys])
|
||||||
Returns a copy of the `t` table with all the duplicate values removed. If
|
Returns a copy of the `t` table with all the duplicate values removed. If
|
||||||
`retainkeys` is true the table is not treated as an array and retains its
|
`retainkeys` is true the table is not treated as an array and retains its
|
||||||
@ -160,6 +153,13 @@ than a string. Creates and returns a new array of the given slice.
|
|||||||
lume.slice({"a", "b", "c", "d", "e"}, 2, 4) -- Returns {"b", "c", "d"}
|
lume.slice({"a", "b", "c", "d", "e"}, 2, 4) -- Returns {"b", "c", "d"}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### lume.invert(t)
|
||||||
|
Returns a copy of the table where the keys have become the values and the
|
||||||
|
values the keys.
|
||||||
|
```lua
|
||||||
|
lume.invert({a = "x", b = "y"}) -- returns {x = "a", y = "b"}
|
||||||
|
```
|
||||||
|
|
||||||
### lume.clone(t)
|
### lume.clone(t)
|
||||||
Returns a shallow copy of the table `t`.
|
Returns a shallow copy of the table `t`.
|
||||||
|
|
||||||
|
16
lume.lua
16
lume.lua
@ -76,6 +76,7 @@ function lume.shuffle(t)
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function lume.array(...)
|
function lume.array(...)
|
||||||
local t = {}
|
local t = {}
|
||||||
for x in unpack({...}) do t[#t + 1] = x end
|
for x in unpack({...}) do t[#t + 1] = x end
|
||||||
@ -126,13 +127,6 @@ function lume.reduce(t, fn, first)
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
function lume.invert(t)
|
|
||||||
local rtn = {}
|
|
||||||
for k, v in pairs(t) do rtn[v] = k end
|
|
||||||
return rtn
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
function lume.set(t, retainkeys)
|
function lume.set(t, retainkeys)
|
||||||
local rtn = {}
|
local rtn = {}
|
||||||
for k, v in pairs(lume.invert(t)) do
|
for k, v in pairs(lume.invert(t)) do
|
||||||
@ -159,6 +153,7 @@ function lume.merge(t, t2, retainkeys)
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function lume.find(t, value)
|
function lume.find(t, value)
|
||||||
for k, v in pairs(t) do
|
for k, v in pairs(t) do
|
||||||
if v == value then return k end
|
if v == value then return k end
|
||||||
@ -178,6 +173,13 @@ function lume.slice(t, i, j)
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
function lume.invert(t)
|
||||||
|
local rtn = {}
|
||||||
|
for k, v in pairs(t) do rtn[v] = k end
|
||||||
|
return rtn
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
function lume.clone(t)
|
function lume.clone(t)
|
||||||
local rtn = {}
|
local rtn = {}
|
||||||
for k, v in pairs(t) do rtn[k] = v end
|
for k, v in pairs(t) do rtn[k] = v end
|
||||||
|
Loading…
Reference in New Issue
Block a user