This is the binding function used when the formal
parameter of a function is VAR
. This means that we are dealing with
a function of the form f@x:...
. This means that we have to create
a table of evaluated actual arguments, and bind this table to the variable (e.g.
x
) of the function. This is reflected in the code. Notice that the
code is extremely subtle: We have to make a table of evaluated actual arguments,
so one might expect to see a for-loop to evaluate all the actuals one by one.
In fact this iteration is there, but is performed by the 'initialization of table'-semantics
of the Pico we are using to implement MC-eval. It is the expression arg[siz]:
eval(tab[idx:= idx+1]);
that takes care of the iteration. The result is
a Pico table, that must be wrapped in a TAB
. This wrapped table is
called exp
in the code. It is this table that is bound to the name
by the final add
. Hence, a table is bound to the formal parameter
(e.g. x
).