lua-users home
lua-l archive

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


Hallo,

On 14/03/18 02:45, Coda Highland wrote:
> On Tue, Mar 13, 2018 at 7:47 PM, Tomás Guisasola
> <tomas@tecgraf.puc-rio.br> wrote:
>> Hi Roberto
>>
>>> No, this is not like JavaScript! 'undef' is NOT a value.
>>
>> But it is used as a value.  It sounds strange to me...
>>
>>>
>>> t[i]=undef is a special syntax form that means "remove the key 'i'
>>> from table 't'".
>>
>> But it seems like an assignment.  Wouldn't be better to create a special
>> syntax for removing a key from a table instead pretending it as an
>> assingment?
>>
>> You should have considered a pair of functions, such as table.undefine(t, i)
>> to undefine a key, and table.defined(t, i) to check whether the table has
>> the key.  Why did you choose the assignment?
>>
>> Regards,
>> Tomás
> 
> Functions are a bad idea, because this really is a language primitive.
> 

I don't see how that follows.

I agree the assignment syntax is confusing, for the dubious benefit that
it *may* assign `nil` and thus remove the value from the table in older
versions of Lua.

Cheers,
-- 
-alex
http://unendli.ch/