Yes, I have read Swift :-) And in that spirit, I don't know whether to take this proposal seriously because it's kind of radical. Nevertheless, here goes...
It has occurred to me that as Python stands today, an indent always begins with a colon. So in principle, we could define anything that looks like an indent but doesn't begin with a colon as a continuation. So the idea would be that you can continue a statement onto as many lines as you wish, provided that Each line after the first is indented strictly more than the first line (but not necessarily more than the remaining lines in the statement), and If there is a colon that will precede an indent, it is the last token of the last line, in which case the line after the colon must be indented strictly more than the first line (but not necessarily more than the remaining lines in the statement). For example: "abc" + "def" # second line with more whitespace than the first -- continuation "abc" + "def" # attempt to apply unary + to string literal "abc" + "def" + "ghi" # OK -- this line is indented more than "abc" This proposal has the advantage of being entirely lexical -- it doesn't even rely on counting parentheses or brackets, so unlike the current Python rule, it can be implemented entirely as a regular expression. It has the disadvantage of being a change, and may have its own pitfalls: if foo # Oops, I forgot the colon + bar # which makes this line a continuation Of course, when "if" isn't followed eventually by a colon, the code won't compile. However... x = 3, 4 # x = (3, 4) x = 3, # x = (3,) 4 # evaluate 4 and throw it away So it may be that this proposed rule is too tricky to use. However, it does have the merit of being even simpler than the current rule. Just a thought... _______________________________________________ Python-3000 mailing list Python-3000@python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com