cl: Dynamic Bindings
4.3.1 Dynamic Bindings
----------------------
The standard ‘let’ form binds variables whose names are known at
compile-time. The ‘cl-progv’ form provides an easy way to bind
variables whose names are computed at run-time.
-- Macro: cl-progv symbols values forms...
This form establishes ‘let’-style variable bindings on a set of
variables computed at run-time. The expressions SYMBOLS and VALUES
are evaluated, and must return lists of symbols and values,
respectively. The symbols are bound to the corresponding values
for the duration of the body FORMs. If VALUES is shorter than
SYMBOLS, the last few symbols are bound to ‘nil’. If SYMBOLS is
shorter than VALUES, the excess values are ignored.