def reduce(self, function, **kwargs): return reduce(function, self, **kwargs)
def iterfold(table, key, f, value): yield ('key', 'value') for k, grp in rowgroupby(table, key, value): yield k, reduce(f, grp)