1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00

* lisp/emacs-lisp/pcase.el (pcase-let*, pcase-let): plet -> pcase-let.

This commit is contained in:
Stefan Monnier 2010-09-27 00:42:53 +02:00
parent 82d6e50bf5
commit 15413fb428
2 changed files with 11 additions and 6 deletions

View file

@ -1,3 +1,7 @@
2010-09-26 Stefan Monnier <monnier@iro.umontreal.ca>
* emacs-lisp/pcase.el (pcase-let*, pcase-let): plet -> pcase-let.
2010-09-26 Lars Magne Ingebrigtsen <larsi@gnus.org>
* net/gnutls.el (starttls-negotiate): Avoid the cl.el decf function.

View file

@ -76,8 +76,8 @@ BODY should be an expression, and BINDINGS should be a list of bindings
of the form (UPAT EXP)."
(if (null bindings) body
`(pcase ,(cadr (car bindings))
(,(caar bindings) (plet* ,(cdr bindings) ,body))
(t (error "Pattern match failure in `plet'")))))
(,(caar bindings) (pcase-let* ,(cdr bindings) ,body))
(t (error "Pattern match failure in `pcase-let'")))))
;;;###autoload
(defmacro pcase-let (bindings body)
@ -85,13 +85,14 @@ of the form (UPAT EXP)."
BODY should be an expression, and BINDINGS should be a list of bindings
of the form (UPAT EXP)."
(if (null (cdr bindings))
`(plet* ,bindings ,body)
`(pcase-let* ,bindings ,body)
(setq bindings (mapcar (lambda (x) (cons (make-symbol "x") x)) bindings))
`(let ,(mapcar (lambda (binding) (list (nth 0 binding) (nth 2 binding)))
bindings)
(plet* ,(mapcar (lambda (binding) (list (nth 1 binding) (nth 0 binding)))
bindings)
,body))))
(pcase-let*
,(mapcar (lambda (binding) (list (nth 1 binding) (nth 0 binding)))
bindings)
,body))))
(defun pcase-expand (exp cases)
(let* ((defs (if (symbolp exp) '()