Greg Ewing wrote: > how about > > sum of x*x for x in xvalues > average of g for g in grades > maximum of f(x, y) for x in xrange for y in yrange > top(10) of humour(joke) for joke in comedy I've thought about this, and I don't think I like it. "of" just seems like a new and confusingly different way to spell a function call. E.g., if I read this max([f(x,y) for x in xrange for y in yrange]) out-loud, I'd say: "the maximum of f of x and y for x in xrange, and y in yrange" So perhaps that third example should be spelt: maximum of f of x, y for x in xrange for y in yrange <wink>. This particularly struck me when I read Alex's comment: > for x in sorted_copy of mylist: > ... > > now doesn't THAT read just wonderfully, too...?-) Actually, that strikes me as an odd way of spelling: for x in sorted_copy(mylist): ... I think the lazy iteration syntax approach was probably a better idea. I don't like the proposed use of "yield" to signify it, though -- "yield" is a flow control statement, so the examples using it in this thread look odd to me. Perhaps it would be best to simply use the keyword "lazy" -- after all, that's the key distinguishing feature. I think my preferred syntax would be: sum([lazy x*x for x in sequence]) But use of parens instead of brackets, and/or a colon to make the keyword stand out (and look reminisicent to a lambda! which *is* a related concept, in a way -- it also defers evaluation), e.g.: sum((lazy: x*x for x in sequence)) Would be fine with me as well. -Andrew.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4