[Python-Dev] re: list comprehension / pop quiz

Moshe Zadka Moshe Zadka <moshez@math.huji.ac.il>
Wed, 12 Jul 2000 20:26:34 +0300 (IDT)

On Wed, 12 Jul 2000 esr@thyrsus.com wrote:

> Presto! All need for parallel loops has now disappeared.  If anyone
> doubts this, I will cheerfully produce source code for with().

Ummm.....you mean

def with(*args):
	apply(map, (None,)+args)


(Actually, this isn't right, since map() adds None's instead of stopping.
But that should be a considered a design bug in map() anyway)

What would people think about xmap(), which acts anologously to xrange(),
IOW calculate lazilly instead of eagerly? Or even, calculate "on demand",
without caching:

class xmap:

	def __init__(self, func, *args):
		self.func = func
		self.args = args

	def __getitem__(self, i):
		arg = [None]*len(self.args)
		for j in range(len(self.args)):
			arg[j] = self.args[j][i]
		return apply(self.func, arg)

Wouldn't this solve the parallel iteration problem?
Moshe Zadka <moshez@math.huji.ac.il>
There is no GOD but Python, and HTTP is its prophet.