Function: inline-letevals

inline-letevals is a macro defined in inline.el.gz.

Signature

(inline-letevals VARS &rest BODY)

Documentation

Make sure the expressions in VARS are evaluated.

VARS should be a list of elements of the form (VAR EXP) or just VAR, in case EXP is equal to VAR. The result is to evaluate EXP and bind the result to VAR.

The tail of VARS can be either nil or a symbol VAR which should hold a list of arguments, in which case each argument is evaluated and the resulting new list is re-bound to VAR.

After VARS is handled, BODY is evaluated in the new environment.

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/inline.el.gz
(defmacro inline-letevals (vars &rest body)
  "Make sure the expressions in VARS are evaluated.
VARS should be a list of elements of the form (VAR EXP) or just VAR, in case
EXP is equal to VAR.  The result is to evaluate EXP and bind the result to VAR.

The tail of VARS can be either nil or a symbol VAR which should hold a list
of arguments, in which case each argument is evaluated and the resulting
new list is re-bound to VAR.

After VARS is handled, BODY is evaluated in the new environment."
  (declare (indent 1) (debug (sexp body)))
  (cond
   ((consp vars)
    `(inline--leteval ,(pop vars) (inline-letevals ,vars ,@body)))
   (vars
    `(inline--letlisteval ,vars ,@body))
   (t (macroexp-progn body))))