Hello,
Well, we have "for", "while" and "if". We also have statements,
list generator expressions and list comprehensions. In
comprehensions we have the opportunity to use several for-s and in a
same expression (for i in range (0, 640) for j in range (0, 640)),
in loops we cannot; in comprehensions, we can use if-s to filter the
items; in loops, we cannot, and we have to write an inner comparison instead.
My opinion is that in so smart language as Python is, it would be
great to have them generalized, so that the features available in
list comprehensions should be available in statements, vice versa.
All three statements (for/while/if) could be joined
together into a single common one, where any of these could be
combined and used multiple times (but for the cases when a
"else"/"elif" etc causes are required, old-school one-statements
should be left); and for such common expressions, they should be
equal for both loop statements and list comprehensions/generator
expressions.
That is, the following loops should be possible:
-------
# This gives us some sugar to get rid of unnecessary indentations
for x in range (0, 640) for y in range (0, 480):
-------
for x in range (0, 640) if should_handle_this_column(x) \
for y in range (0, 480) if should_handle_this_row(y):
-------
for nX, nY in (
f(x), f(y)
for x in range (0, 640) if should_handle_this_column(x)
for y in range (0, 480) if should_handle_this_row(y)
):
-------
for x in range (0, 640) for y in range (0, 480) while(!timeout()):
-------
for x in range (0, 640) while(!timeout_pos_in_row()) for y in range (0, 480)
while(!timeout_rows()):
-------
# And the latest and the hugest one:
for x in range (0, 640) if should_handle_this_column(x)
while(!timeout_pos_in_row()) \
for y in range (0, 480) if should_handle_this_row(y) while(!timeout_rows() :
-------
# And almost the same as generator expression:
for x, y in (
f(x), f(y)
for x in range (0, 640) if should_handle_this_column(x)
while(!timeout_pos_in_row())
for y in range (0, 480) if should_handle_this_row(y) while(!timeout_rows()
)
-------
Hope I didn't miss something important...
--
With best regards,
Alexander mailto:[EMAIL PROTECTED]
_______________________________________________
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com