lua-users home
lua-l archive

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


On Thu, Dec 30, 2010 at 01:28, steve donovan <steve.j.donovan@gmail.com> wrote:
> On Thu, Dec 30, 2010 at 8:26 AM, Mark Hamburg <mark@grubmah.com> wrote:
>> A simpler answer is to provide an array namespace....arrays have an explicit length (stored somewhere) and appropriate metamethods to maintain it.
>
> It's a question of using the appropriate data structure for the job.
> [1] is a reasonably robust array with bounds-checking, where setting
> nil is prohibited so that no holes can happen. It uses newproxy() to
> make the object so that the table functions cannot be used on it.
>
> With a little work this can also be made a type-safe array, so one can
> approach the Platonic Ideal of a Pascal array.
>
> OK, so it obviously is going to be less efficient. But the old Irish
> programming principle applies: Slow but sure, and fail noisily!
>
> steve d.
>
> [1] https://gist.github.com/759589 [2]
> [2] Yes, I should use http://snippets.luacode.org/, but it barfed at
> this code. [3]
> [3] I have complained to the maintainer, who happens to be myself.
>
>

I had been pondering the idea of having #t just return nil if the
table has holes so people will get the idea that it's undefined.

-- 
Sent from my toaster.