Tables

Note that tables are objects, and not values.Variables do not contain tables, only references to them.Assignment, parameter passing, and returns always manipulate references to tables, and do not imply any kind of copy.Moreover, tables must be explicitly created before used.

To represent records, the field name is used as an index. Tables may also carry methods, allowing object-oriented programming. The following are equivalents (syntactic sugar) for forming records and methods:

a.name <-> a["name"]
t:f(x) <-> t.f(t,x)