Veek M <v...@dont-use-this.com> writes: > The docs state that a expression is some combination of value, operator, > variable and function. Also you cannot add or combine a generator > expression with a value as you would do with 2 + 3 + 4. For example, > someone on IRC suggested this > all(a == 'a' for a in 'apple') but > > 1. all is a function/method > 2. so (whatever) in this case is a call but obviously it works so it must > be a generator object as well.. so.. how does 'all' the function object > work with the generator object that's being produced? > > I can't for example do min 1,2,3 but i can do min (1,2,3) and the () are > not integral to a tuple - therefore one could argue that the () are part > of the call - not so with a generator Expression where the () are > integral to its existence as an object. > > Could someone clarify further.
The Language Reference Manual says: generator_expression ::= "(" expression comp_for ")" The parentheses can be omitted on calls with only one argument. See section Calls for details. Calls: call ::= primary "(" [argument_list [","] | comprehension] ")" comprehension ::= expression comp_for The last part is the inner part (i.e. without the parentheses) of generator_expression. -- Pieter van Oostrum www: http://pieter.vanoostrum.org/ PGP key: [8DAE142BE17999C4] -- https://mail.python.org/mailman/listinfo/python-list