* lisp/emacs-lisp/map.el (map-let): Better docstring.
This commit is contained in:
parent
2a54e8dfff
commit
30e518379e
1 changed files with 13 additions and 8 deletions
|
@ -47,20 +47,25 @@
|
|||
(pcase-defmacro map (&rest args)
|
||||
"pcase pattern matching map elements.
|
||||
Matches if the object is a map (list, hash-table or array), and
|
||||
binds values from ARGS to the corresponding element of the map.
|
||||
binds values from ARGS to their corresponding elements of the map.
|
||||
|
||||
ARGS can be a list elements of the form (KEY . PAT) or elements
|
||||
of the form SYMBOL, which stands for (SYMBOL . SYMBOL)."
|
||||
ARGS can be a list elements of the form (KEY PAT) or elements
|
||||
of the form SYMBOL, which stands for ('SYMBOL SYMBOL)."
|
||||
`(and (pred map-p)
|
||||
,@(map--make-pcase-bindings args)))
|
||||
|
||||
(defmacro map-let (args map &rest body)
|
||||
"Bind the variables in ARGS to the elements of MAP then evaluate BODY.
|
||||
(defmacro map-let (keys map &rest body)
|
||||
"Bind the variables in KEYS to the elements of MAP then evaluate BODY.
|
||||
|
||||
ARGS can be an alist of key/binding pairs or a list of keys. MAP
|
||||
can be a list, hash-table or array."
|
||||
KEYS can be a list of symbols, in which case each element will be
|
||||
bound to the looked up value in MAP.
|
||||
|
||||
KEYS can also be a list of (KEY VARNAME) pairs, in which case
|
||||
KEY is not quoted.
|
||||
|
||||
MAP can be a list, hash-table or array."
|
||||
(declare (indent 2) (debug t))
|
||||
`(pcase-let ((,(map--make-pcase-patterns args) ,map))
|
||||
`(pcase-let ((,(map--make-pcase-patterns keys) ,map))
|
||||
,@body))
|
||||
|
||||
(defmacro map--dispatch (spec &rest args)
|
||||
|
|
Loading…
Add table
Reference in a new issue