[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: new "empty" value/type in Lua?
- From: Tim Hill <drtimhill@...>
- Date: Mon, 1 Jul 2013 13:18:37 -0700
Completely agree.
On Jul 1, 2013, at 12:38 PM, Coda Highland <chighland@gmail.com> wrote:
>> From a CS perspective, all computable algorithms can be expressed by a
> Turing machine. That doesn't mean there aren't comparative merits
> between them.
>
> /s/ Adam
>
> On Mon, Jul 1, 2013 at 12:35 PM, Tim Hill <drtimhill@gmail.com> wrote:
>> I would say that from a CS perspective, table.has() and an "empty" sentinel are the same thing in different form; both introduce an extra bit of information about an element in the table, since you now have two possibilities when faced with t[k] = nil: one with table.has() true, one with table.has() false. Logically you could define:
>>
>> function empty(t, k) return t[k] == nil and table.has(t,k) end
>>
>> --Tim
>>
>> On Jul 1, 2013, at 12:13 PM, Coda Highland <chighland@gmail.com> wrote:
>>
>>> On Mon, Jul 1, 2013 at 12:11 PM, Tim Hill <drtimhill@gmail.com> wrote:
>>>>>> That could be useful, but also a bit confusing as it means a key set to nil
>>>>>> and a key that was never set (or was deleted) are different things, but both
>>>>>> have a nil value.
>>>>> You can tell the difference with table.has().
>>>> Depending on how # behaved, you might also be able to tell with just (i <=
>>>> #t) ?
>>>
>>> table.has() is a generic mechanism for all tables, not just arrays --
>>> a sparse array or a freeform table could still have nil-valued entries
>>> as distinct from nonexistent entries.
>>>
>>> /s/ Adam
>>>
>>
>>
>