[Python-Dev] accumulator display syntax
aleaxit at yahoo.com
Fri Oct 17 16:01:50 EDT 2003
On Friday 17 October 2003 08:57 pm, Skip Montanaro wrote:
> Forgive my extreme density on this matter, but I don't understand what
> (yield x for x in S)
> is supposed to do. Is it supposed to return a generator function which I
> can assign to a variable (or pass to the builtin function sum() as in your
> example) and call later, or is it supposed to turn the current function
> into a generator function (so that each executed yield statement returns a
> value to the caller of the current function)?
Neither: it returns an iterator, _equivalent_ to the one that would be
returned by _calling_ a generator such as
for x in S:
like xxx() [the result of the CALL to xxx, as opposed to xxx itself], (yield:
x for x in S) is not callable; rather, it's loopable-on.
> you don't like lambda, I can't quite see why syntax this is all that
I don't really like the current state of lambda (and it will likely never get
any better), I particularly don't like the use of the letter lambda for this
idea (Church's work notwithstanding, even Paul Graham in his new lispoid
language has chosen a more sensible keyword, 'func' I believe), but I like
comprehensions AND iterators, and the use of the word yield in generators.
I'm not quite sure what parallels you see between the two cases.
More information about the Python-Dev