[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: lua hacking wondering
- From: Dimitris Papavasiliou <jimmyp@...>
- Date: Fri, 25 Jun 2004 13:16:31 +0300
On Thursday 24 June 2004 07:51, Virgil Smith wrote:
> Hmm, the above statements reminded me of something.
> Perhaps neither camp is 100% right or 100% wrong. In fact maybe they are
> both exactly 50% right and 50% wrong.
> A __gettable metamethod is not useful to implementing "properties". After
> all if you already have a value for the property then there is no need to
> generate the value via a handler function AND whatever value is stored "in
> the property location" is not really the property's value anyway because it
> might not be what is returned from the function. __index on the other hand
> allows both property "get" handlers AND lazy evaluation / caching schemes.
It seems wrong to me to consider a language feature in the context of a
specific application feature like "properties". Metamethods do not exist for
the purpose of allowing the programmer to implement a specific feature like
"properties" but rather to allow the execution of arbitrary code when an
operation is performed on a table. I'm just saying that it seems more
logical to me that the basic operations of getting and setting a value in the
table should be chosen instead of the specialized operations of getting and
setting non-existing values. It just seems natural to me that, since the case
where a non-existing value is read or written to is more specific than
reading and writing any value, I should have to write extra code fore the
first case and not the second.