Major Section: ACL2-BUILT-INS
Mv?
is designed to work with mv?-let
, generalizing how mv
works
with mv-let
by allowing the binding of a single variable. For example,
the following form is legal.
(mv?-let (y) (mv? (f x)) (declare (type integer y)) (g x y z))The expression above is equivalent to the following expression, because
(mv? form)
expands to form
for any expression, form
.
(let ((y (f x))) (declare (type integer y)) (g x y z))
Logically, (mv? x)
is the same as x
, while (mv? v1 v2 ...)
is the
same as (list v1 v2 ...)
. Also see mv and see mv?-let.