lua-users home
lua-l archive

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


No, it would be a table pretending to be a collection (or, we might say, a
table pretending to be a table!).

The simplest implementation would be:

setmetatable(obj, {__iter = pairs;})

So whatever you want to call 'pairs', (factory, generator, whatever) the
metamethod is called the same! (But I accept that maybe '__iter' is the
wrong key for it.)

-----Original Message-----
From: lua-bounces@bazar2.conectiva.com.br
[mailto:lua-bounces@bazar2.conectiva.com.br] On Behalf Of Mark Hamburg
Sent: 16 December 2009 21:21
To: Lua list
Subject: Re: '__iter', yet again!

The argument against:

It changes the semantics of the generic for loop from taking an iterator to
taking an iterator or an iterator factory.

The factory is distinctly one step removed from an iterator and hence is not
analogous to a table pretending to be a function (__call) or a table
pretending to be a number (__add).

Mark