Chunyang Xu writes: > It looks like, to me, the structure of the BODY arg of these two should > be the same (accepting a list froms). > > (pcase-let ((a 1)) > (incf a) > a) > => 2 > > (pcase-let* ((a 1)) > (incf a) > a) > => 2 It appears to be so. Here's what I did: (pcase-let* ((a 1) (b 2)) (message "%d" a) (message "%d" b)) and ended up with 1 2 in my *Messages* buffer. > but the docstrings are using the different words. > > (pcase-let BINDINGS &rest BODY) > > Like `let' but where you can use `pcase' patterns for bindings. > BODY should be a list of expressions, and BINDINGS should be a list of bindings > ^^^^^^^^^^^^^^^^^^^^^ > of the form (PAT EXP). > > (pcase-let* BINDINGS &rest BODY) > > Like `let*' but where you can use `pcase' patterns for bindings. > BODY should be an expression, and BINDINGS should be a list of bindings > ^^^^^^^^^^^^^ > of the form (PAT EXP). This patch changes the pcase-let* docstring to match the pcase-let docstring, but IMO I don't think that the phrase 'a list of expressions' is exactly the right term for this. That (to me) implies that we are wrapping the whole body in a list, which you don't. For example - ; What that phrase implies to me: (pcase-let ((a 1)) ((incf a) a)) But I have no idea how to better phrase this. For certain, though, they ought to match because they both behave the same way. -----