Joe Strout wrote:
Aaron Brady wrote:
Unambiguity and readability are two different things. (This should be
a quasi-tangent, neither agreed, nor opposed, nor unrelated to what
you said.)
If you have
f "abc" 123
it's unambiguous, but, if you have
g f "abc" 123 "def"
there's no sure way to determine where the call to 'f' stopped, and
the one to 'g' resumed (or, as in Python, if 'f' was even to be called
at all, as opposed to 4 parameters to 'g').
Right -- that's exactly why (in RB) parentheses are required around
arguments to a method call if that method returns a value (in RB terms,
if it is a function rather than a subroutine). Then there is no
ambiguity, because only such a function can be used as an argument to
another method call (or otherwise be part of an expression). The above
would have to be written something like:
g f("abc", 123), "def"
I'm not saying I know how to translate this into Python -- some of
Python's other language features make this difficult. Just pointing out
that your original wish is possible in at least some languages.
Next you'll be saying that print(x) in Python 3.x should become print x
in python 4.x! :-)
--
http://mail.python.org/mailman/listinfo/python-list