Add macro seq-setq.

* doc/lispref/sequences.texi (seq-setq): Document this macro.

* lisp/emacs-lisp/seq.el (seq-setq): New macro.

* test/lisp/emacs-lisp/seq-tests.el (test-seq-setq):
Test this macro (bug#50053).
This commit is contained in:
Earl Hyatt 2021-08-14 14:17:12 +02:00 committed by Lars Ingebrigtsen
parent adb6c3f1a4
commit c58f8dda2b
3 changed files with 49 additions and 0 deletions

View file

@ -93,6 +93,14 @@ name to be bound to the rest of SEQUENCE."
(declare (indent 2) (debug (sexp form body)))
`(pcase-let ((,(seq--make-pcase-patterns args) ,sequence))
,@body))
(defmacro seq-setq (args sequence)
"Assign to the variables in ARGS the elements of SEQUENCE.
ARGS can also include the `&rest' marker followed by a variable
name to be bound to the rest of SEQUENCE."
(declare (debug (sexp form)))
`(pcase-setq ,(seq--make-pcase-patterns args) ,sequence))
;;; Basic seq functions that have to be implemented by new sequence types