Github GitHub - nicferrier/emacs-kv: Key/Value collection type functions: for al...
source link: https://github.com/nicferrier/emacs-kv
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
A collection of tools for dealing with key/value data structures such as plists, alists and hash-tables.
kvalist->filter-keys alist &rest keys
Return the alist filtered to the keys list.
Only pairs where the car is a member of keys will be returned.
kvalist->hash alist &rest hash-table-args
Convert alist to a HASH.
hash-table-args are passed to the hash-table creation.
kvalist->keys alist
Get just the keys from the alist.
kvalist->plist alist
Convert an alist to a plist.
kvalist->values alist
Get just the values from the alist.
kvalist-keys->* alist fn
Convert the keys of alist through fn.
kvalist-keys->symbols alist
Convert the keys of alist into symbols.
kvalist-sort alist pred
Sort alist (by key) with pred.
kvalist-sort-by-value alist pred
Sort alist by value with pred.
kvalist2->alist alist2 car-key cdr-key &optional proper
Reduce the alist2 (a list of alists) to a single alist.
car-key is the key of each alist to use as the resulting key and cdr-key is the key of each alist to user as the resulting cdr.
If proper is t then the alist is a list of proper lists, not cons cells.
kvalist2->filter-keys alist2 &rest keys
Return the alist2 (a list of alists) filtered to the keys.
kvalist2->plist alist2
Convert a list of alists too a list of plists.
kvcmp a b
Do a comparison of the two values using printable syntax.
Use this as the function to pass to sort.
kvdotassoc expr table
Dotted expression handling with assoc.
kvdotassoc-fn expr table func
Use the dotted expr to access deeply nested data in table.
expr is a dot separated expression, either a symbol or a string. For example:
"a.b.c"
'a.b.c
If the expr is a symbol then the keys of the alist are also expected to be symbols.
table is expected to be an alist currently.
func is some sort of assoc like function.
kvdotassq expr table
Dotted expression handling with assq.
kvhash->alist hash
Convert hash to an ALIST.
kvmap-bind args sexp seq
A hybrid of destructuring-bind and mapcar args shall be of the form used with destructuring-bind
Unlike most other mapping forms this is a macro intended to be used for structural transformations, so the expected usage will be that args describes the structure of the items in seq, and sexp will describe the structure desired.
kvplist->alist plist
Convert plist to an alist.
The keys are expected to be :prefixed and the colons are removed. The keys in the resulting alist are symbols.
kvplist->filter-keys plist &rest keys
Filter the plist to just those matching keys.
keys must actually be :-less symbols.
kvalist->filter-keys is actually used to do this work.
kvplist->merge &rest plists
Merge the 2nd and subsequent plists into the first, clobbering values set by lists to the left.
kvplist2->filter-keys plist2 &rest keys
Return the plist2 (a list of plists) filtered to the keys.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK