In Lua, meta tables can be used to modify the behavior of tables. Any table can be made into a meta table, and any table can have a meta table. Even meta tables can have their own meta tables. Meta tables change the behavior of tables using meta methods. These meta methods are functions with a specific name that affect how a table behaves.
First, create a table named meta. For now, this is a normal table. This table will have a function named __add. __add is a reserved function name. The __add function will take two arguments.
The left argument will be a table with a field called value, the right argument will be a number:
meta = { } -- Creates table
meta.__add = function(left, right) -- adds meta method
return left.value + right -- left is assumed to be a table.
end
Next, make a table called container. The container table will have a variable called value, with a...