Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Yonaba/Moses.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYonaba <roland.yonaba@gmail.com>2017-04-13 18:54:00 +0300
committerYonaba <roland.yonaba@gmail.com>2017-04-13 18:54:00 +0300
commitc322b82ab4e60bbb722792a6768b90900c53ef50 (patch)
tree8f2a76fd62099177f0362b9ee0a6582c1fec4d1f /moses.lua
parentc765f66bce75e27d0307f182dd0c4ab506cb0e5d (diff)
Added _.toObj
Diffstat (limited to 'moses.lua')
-rw-r--r--moses.lua18
1 files changed, 17 insertions, 1 deletions
diff --git a/moses.lua b/moses.lua
index 5d73d8a..850249b 100644
--- a/moses.lua
+++ b/moses.lua
@@ -1506,7 +1506,7 @@ function _.iterator(f, x)
end
--- Partially apply a function by filling in any number of its arguments.
--- One may pass a string `'_'` as a placeholder in your list of arguments to specify an argument
+-- One may pass a string `'_'` as a placeholder in the list of arguments to specify an argument
-- that should not be pre-filled, but left open to be supplied at call-time.
-- @name partial
-- @param f a function
@@ -1577,12 +1577,28 @@ end
-- @name kvpairs
-- @param obj an object
-- @return an array list of key-values pairs
+-- @see toObj
function _.kvpairs(obj)
local t = {}
_.each(obj, function(k,v) t[#t+1] = {k,v} end)
return t
end
+--- Converts an array list of `kvpairs` to an object where keys are taken
+-- from the 1rst column in the `kvpairs` sequence, associated with values in the 2nd
+-- column
+-- @name toObj
+-- @param kvpairs an array-list of `kvpairs`
+-- @return an object
+-- @see kvpairs
+function _.toObj(kvpairs)
+ local obj = {}
+ for __, v in ipairs(kvpairs) do
+ obj[v[1]] = v[2]
+ end
+ return obj
+end
+
--- Returns a function that will return the key property of any passed-in object.
-- @name property
-- @param key a key property name