
[Skip Montanaro]
I understand all that. Still, the "best" syntax for these so-called iterator comprehensions might have been the current list comprehension syntax.
Skip is right about returning to the basics. Before considering some of the wild syntaxes that have been submitted, I suggest re-examining the very first proposal with brackets and yield. At one time, I got a lot of feedback on this from comp.lang.python. Just about everyone found the brackets to be helpful and not misleading, the immediate presence of "yield" was more than enough to signal that an iterator was being returned instead of a list: g = [yield (len(line),line) for line in file if len(line)>5] This syntax is instantly learnable from existing knowledge about list comprehensions and generators. The advantage of a near zero learning curve should not be easily dismissed. Also, this syntax makes is trivially easy to convert an existing list comprehension into an iterator comprehension if needed to help the application scale-up or to improve performance. Raymond Hettinger ################################################################# ################################################################# ################################################################# ##### ##### ##### ################################################################# ################################################################# #################################################################