Por que você pode omitir os parênteses circundantes para geradores em Python ao passá-lo para uma função?
Eu estava apenas experimentando em Python uma sintaxe diferente para passar um gerador como argumento para uma função e percebi que, embora eu esteja fazendo isso,
>>> sum((j for j in xrange(5)))
10
isso funciona também:
>>> sum(j for j in xrange(5))
10
Isso é testado no Python 2.6.6 no Linux. O que está acontecendo sob o capô? É apenas açúcar sintático? Afinal, geralmente um gerador desembrulhado é indecifrável para o intérprete:
>>> j for j in xrange(5)
File "<stdin>", line 1
j for j in xrange(5)
^
SyntaxError: invalid syntax