lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

In message <>
          Dirk Laurie <> wrote:

> If just '==' is good enough, then a metamethod does it.
> If you need to use tuples as an index into a table, raw equality
> is needed. This can be done in many ways, such as memoizing,
> serializing etc, but all the approaches work on the metatable of
> the table, not of the tuple.

I was musing in a vague way about the "duality" between functions
f(...), with their fixed space but variable time cost, and tables
f[...] with their fixed time but variable space cost. The symmetry
is broken by the fact that tables do not have multi-indices, but
can be restored by the use of tuples. But tuples are not fully
privileged citizens in Lua (and I am not arguing that they should be),
unlike Haskell. The use of metatables for tables can provide a sort of
dual to the process of memoization, which can be thought of as letting
the programmer trade between space costs and time costs.

Gavin Wraith (
Home page: