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.