Repository URL to install this package:
|
Version:
0.29.7 ▾
|
# mode: run
# tag: genexpr
# cython: language_level=3
"""
Adapted from CPython's test_grammar.py
"""
def genexpr_simple():
"""
>>> sum([ x**2 for x in range(10) ])
285
>>> sum(genexpr_simple())
285
"""
return (x**2 for x in range(10))
def genexpr_conditional():
"""
>>> sum([ x*x for x in range(10) if x%2 ])
165
>>> sum(genexpr_conditional())
165
"""
return (x*x for x in range(10) if x%2)
def genexpr_nested2():
"""
>>> sum([x for x in range(10)])
45
>>> sum(genexpr_nested2())
45
"""
return (x for x in (y for y in range(10)))
def genexpr_nested3():
"""
>>> sum([x for x in range(10)])
45
>>> sum(genexpr_nested3())
45
"""
return (x for x in (y for y in (z for z in range(10))))
def genexpr_nested_listcomp():
"""
>>> sum([x for x in range(10)])
45
>>> sum(genexpr_nested_listcomp())
45
"""
return (x for x in [y for y in (z for z in range(10))])
def genexpr_nested_conditional():
"""
>>> sum([ x for x in [y for y in [z for z in range(10) if True]] if True ])
45
>>> sum(genexpr_nested_conditional())
45
"""
return (x for x in (y for y in (z for z in range(10) if True)) if True)
def genexpr_nested2_conditional_empty():
"""
>>> sum(genexpr_nested2_conditional_empty())
0
"""
return (y for y in (z for z in range(10) if True) if False)
def genexpr_nested3_conditional_empty():
"""
>>> sum(genexpr_nested3_conditional_empty())
0
"""
return (x for x in (y for y in (z for z in range(10) if True) if False) if True)