In metalua there's an imap (it recycles the"i" of ipairs/pairs convention, to provide list-oriented and hash-oriented functors); it takes an arbitrary number of tables, and therefore supercedes map, map2, map3 etc.