[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: Map and filter without intermediate tables
- From: steve donovan <steve.j.donovan@...>
- Date: Thu, 7 Jun 2012 09:27:31 +0200
On Thu, Jun 7, 2012 at 5:39 AM, Geoff Leyland <firstname.lastname@example.org> wrote:
> I did, and it was slower than using intermediate tables (and more complicated. It did save some memory though). Is it a dead-end idea, or is it that my implementation  is brain dead?
Well, ipairs is _always_ going to be slower than numeric-for, so I'd
expect any performance-conscious person to override __len as well.
This is then definitely going to be faster:
function imapi (f,t)
local i,n = 0,#t
i = i + 1
if i > n then return end
The explicit comparison against the length allows you to iterate over
sparse arrays that can 'contain' nils.
(Note that LuaJIT has a Lua-5.2 compatibility mode which allows nice
things like __pairs and __len)