An expression to assign a table t[idx]:=exp consists of a name, an index expression and an new value expression. To evaluate this expression, we first look up the name in the current environment. If it is there, its binding is checked to be a table. If so, the next step is to recursively evaluate the index expression. If the result is a positive number that is smaller than (or equal to) the bounds of the table (if(nbr > size(tab),...), the table is updated with the result of evaluating the right-hand-side of the assignment expression.

The result of evaluating the update expression is the value of the right-hand-side. This can be seen because exp is returned.