(original) (raw)

On 23 November 2017 at 09:15, Greg Ewing <greg.ewing@canterbury.ac.nz> wrote:
Ivan Levkivskyi wrote:
On 23 November 2017 at 05:44, Greg Ewing <greg.ewing@canterbury.ac.nz greg.ewing@canterbury.ac.nz>> wrote:

def g():
return ((yield i) for i in range(10))


I think this code should be just equivalent to this code

def g():
temp = \[(yield i) for i in range(10)\]
return (v for v in temp)

But then you get a non-lazy iterable, which defeats the
purpose of using a generator expression -- you might as
well have used a comprehension to begin with.


This could be just a semantic equivalence (mental model), not how it should be internally implemented.

--
Ivan