[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: [ANN] Lua 5.4.0 (work1) now available
- From: Coda Highland <chighland@...>
- Date: Tue, 13 Mar 2018 20:45:57 -0500
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.
That said, I would have preferred a keyword operator ("delete x")
instead of a syntactic constant-ish thing. I understand why it wasn't
done -- it simplifies the grammar because it's not a new token type,
just a special case in the existing grammar, and it's mostly
backwards-compatible if you turn the feature off.
/s/ Adam