4 ms·
Operator precedence isn't really a new concept, and Python relies on it in plenty other situations: bar = 1 + 1 I do believe Python made the right call, a
by shaki-dora 8y ago
Operator precedence isn't really a new concept, and Python relies on it in plenty other situations:
bar = 1 + 1
I do believe Python made the right call, actually: print needed to be unified with functions, and dropping the requirement for parenthesis for function calls would have introduced so much incompatibility as to make the Python 2 -> 3 transition far more difficult.
But ignoring the legacy issue, there is a better way to do function calls, and it is ruby.
- pseudalopex 8y agoWhat does operator precedence have to do with this? Ending a parameter list with a comma changes the output of the print keyword but not a function. Assignment statements can contain function calls but not the print keyword. C style function calls are common, explicit, and consistent. Python adds the best combination of positional, variadic, and named parameters of any language I know. ML style has less punctuation and simpler grouping rules. Ruby has the weaknesses of both.
- arbie 8y agoDidn't Ruby borrow it from Perl?
- epse 8y agoAnd lisp, just less parentheses
- shrimpx 8y agoHaskell/ml/caml do it better than Ruby. f 1 2 (f 1 2).thing Here the parentheses are nothing special, they just hint precedence. As opposed to f 1, 2 f(1, 2).thing Awkward special-case commas and parentheses.