ジェネレーターを関数の引数として渡すためのさまざまな構文を使用して Python で実験していたところ、これを行っていたにもかかわらず、
>>> sum((j for j in xrange(5)))
10
これも同様に機能します:
>>> sum(j for j in xrange(5))
10
これは Linux 上の Python 2.6.6 でテストされています。ボンネットの下で何が起こっているのですか?それは単なる構文糖ですか?結局のところ、通常、ラップされていないジェネレーターはインタープリターには解読できません。
>>> j for j in xrange(5)
File "<stdin>", line 1
j for j in xrange(5)
^
SyntaxError: invalid syntax