*vital-data-dict.txt* dictionary utilities library. Maintainer: thinca ============================================================================== CONTENTS *Vital.Data.Dict-contents* INTRODUCTION |Vital.Data.Dict-introduction| INTERFACE |Vital.Data.Dict-interface| FUNCTIONS |Vital.Data.Dict-functions| ============================================================================== INTRODUCTION *Vital.Data.Dict-introduction* *Vital.Data.Dict* is Dictionary Utilities Library. It provides some functions to manipulate |Dictionary|. ============================================================================== INTERFACE *Vital.Data.Dict-interface* ------------------------------------------------------------------------------ FUNCTIONS *Vital.Data.Dict-functions* make({keys}, {values} [, {fill}]) *Vital.Data.Dict.make()* Makes a dictionary from {keys} and {values}. If the length of {keys} is less than {values}, tails of {values} are ignored. If the length of {keys} is more than {values}, {values} are filled by {fill}. If {fill} is omitted, 0 is used. > :echo Dict.make(['one', 'two', 'three'], [1, 2, 3]) {'one': 1, 'two': 2, 'three': 3} :echo Dict.make(['one', 'two', 'three'], [1, 2, 3, 4]) {'one': 1, 'two': 2, 'three': 3} :echo Dict.make(['one', 'two', 'three'], [1, 2]) {'one': 1, 'two': 2, 'three': 0} :echo Dict.make(['one', 'two', 'three'], [1, 2], 9) {'one': 1, 'two': 2, 'three': 9} < swap({dict}) *Vital.Data.Dict.swap()* Makes a dictionary that swapped keys and values. > :echo Dict.swap({'one': 1, 'two': 2, 'three': 3}) {'1': 'one', '2': 'two', '3': 'three'} < make_index({list} [, {value}]) *Vital.Data.Dict.make_index()* Makes an index dictionary. This dictionary has {list} as key, and has {value} as each value. If {value} is omitted, 1 is used. > :echo Dict.make_index(['apple', 'orange', 'banana']) {'apple': 1, 'orange': 1, 'banana': 1} :echo Dict.make_index(['apple', 'orange', 'banana'], 5) {'apple': 5, 'orange': 5, 'banana': 5} < pick({dict}, {keys}) *Vital.Data.Dict.pick()* Returns a copy of the {dict}, filtered to only have entries for the whitelisted {keys}. > :let d = {'one' : 1, 'two' : 2, 'three' : 3} :echo Dict.pick(d, ['one', 'three']) {'one': 1, 'three': 3} < omit({dict}, {keys}) *Vital.Data.Dict.omit()* Returns a copy of the {dict}, filtered to omit the blacklisted {keys}. > :let d = {'one' : 1, 'two' : 2, 'three' : 3} :echo Dict.omit(d, ['one', 'three']) {'two': 2} < clear({dict}) *Vital.Data.Dict.clear()* Remove all the elements of {dict}. Returns the empty dictionary {dict}. > :let d = {'one' : 1, 'two' : 2, 'three' : 3} :echo Dict.clear(d) {} :echo d {} < max_by({dict}, {expr}) *Vital.Data.Dict.max_by()* Returns a list [key, val] which is maximum value in {dict} through given {expr}. Throws an exception if {dict} is empty. both "v:key" and "v:val" can be used in {expr}. > :echo Dict.max_by({'alice' : 1, 'bob' : 2, 'carol' : 3}, 'len(v:key) - v:val') ['alice', 1] < min_by({dict}, {expr}) *Vital.Data.Dict.min_by()* Returns a list [key, val] which is minimum value in {dict} through given {expr}. Throws an exception if {dict} is empty. both "v:key" and "v:val" can be used in {expr}. > :echo Dict.min_by({'alice' : 1, 'bob' : 2, 'carol' : 3}, 'len(v:key) - v:val') ['bob', 2] < foldl({f}, {init}, {dict}) *Vital.Data.Dict.foldl()* TODO Behaves like Haskell's Data.Map.Lazy.foldlWithKey(). foldr({f}, {init}, {dict}) *Vital.Data.Dict.foldr()* TODO Behaves like Haskell's Data.Map.Lazy.foldrWithKey(). ============================================================================== vim:tw=78:fo=tcq2mM:ts=8:ft=help:norl