> Well, the examples I saw looked like > > x = (if (if e1 then e2 else e3) then e4 else e5) > > Seems to me that those inner parens are there to separate the inner > conditional from the trailing parts of the outer conditional: > > x = ( > if ( > if ( ^ this is not there > e1 > then > e2 > else > e3 > ) > then > e4 > else > e5 > ) > > Whether or not that's what they are in a language parser sense, they sure > look like it to the human eye. They are syntactically unnecessary; they are mostly for guidance of the human reader. If I saw a piece of code that read x = if if if x == 1 then y else z then p else q then a else b I would get a strong urge to commit illegal violence against the author. If on the other hand I saw x = if (if (if x == 1 then y else z) then p else q) then a else b I might be willing to sit down and figure out what it meant -- maybe with the help of a parentheses-balancing command in my editor. > Tim> I'm not concerned about 21 bad arguments versus 20 <wink>. > > That 21st argument will be a little stronger than the other, because > it will go something like, "Why can't we have delimiters for block > statements? After all, we have them in conditional expressions." > The reference, instead of being to another language, will be to > Python itself. Sorry, I still don't get this at all. A conditional expression is still an expression. Curly brances are a statement-level concept. What am I missing? Where is the similarity between the use of { } and ( ) in C/Java/C++/Perl? --Guido van Rossum (home page: http://www.python.org/~guido/)
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