diff options
author | Yonaba <roland.yonaba@gmail.com> | 2017-04-13 18:54:00 +0300 |
---|---|---|
committer | Yonaba <roland.yonaba@gmail.com> | 2017-04-13 18:54:00 +0300 |
commit | c322b82ab4e60bbb722792a6768b90900c53ef50 (patch) | |
tree | 8f2a76fd62099177f0362b9ee0a6582c1fec4d1f /moses.lua | |
parent | c765f66bce75e27d0307f182dd0c4ab506cb0e5d (diff) |
Added _.toObj
Diffstat (limited to 'moses.lua')
-rw-r--r-- | moses.lua | 18 |
1 files changed, 17 insertions, 1 deletions
@@ -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 |