Function: when-let*

when-let* is a macro defined in subr.el.gz.

Signature

(when-let* VARLIST &rest BODY)

Documentation

Bind variables according to VARLIST and conditionally evaluate BODY.

Evaluate each binding in turn, stopping if a binding value is nil. If all are non-nil, evaluate the forms in BODY and return the value of the last form.

The variable list VARLIST is the same as in if-let*.

See also and-let*.

View in manual

Probably introduced at or before Emacs version 31.1.

Source Code

;; Defined in /usr/src/emacs/lisp/subr.el.gz
(defmacro when-let* (varlist &rest body)
  "Bind variables according to VARLIST and conditionally evaluate BODY.
Evaluate each binding in turn, stopping if a binding value is nil.
If all are non-nil, evaluate the forms in BODY
and return the value of the last form.

The variable list VARLIST is the same as in `if-let*'.

See also `and-let*'."
  (declare (indent 1) (debug if-let*))
  (let ((res (list 'if-let* varlist (macroexp-progn body))))
    (if body res
      (macroexp-warn-and-return "Empty body" res 'empty-body))))