4 ms·
Just use parentheses if you're doing many operations on one line? This is common sense in any programming language. I've been programming in C for years and ne
by dahfizz 4y ago
Just use parentheses if you're doing many operations on one line? This is common sense in any programming language.
I've been programming in C for years and never had an issue with operator precedence.
- falcrist 4y agoThere's a lot of exaggeration that goes on with certain fans of postfix systems when they talk about infix systems. For example: I really like HP calculators, so I'm in several facebook groups for fans of RPN/RPL and HP specifically. Sometimes a few of them go way too far out of their way to try to demonstrate how inferior algebraic systems must be. For the record, my copy of K&R wants to open into either section 7.6 or appendix B. No idea what this says about me, though.
- michaelcampbell 4y agoIndeed, different strokes for different uses. I "grokked" RPN pretty early in my career and use it for all my calculator stuff... only. infix for programming languages is equally comfortable for me. I still have to think and study quite hard the prefix LISP notation. I get it, it's just not internalized like the other 2.
- DonHopkins 4y agoIt's not that YOU have any issues with it -- because you're perfect. https://www.youtube.com/watch?v=fKHaNIEa6kA https://www.youtube.com/watch?v=fKHaNIEa6kA It's about the poor people who read your code that relies on both you and them having perfectly memorized every single little detail of operator precedence and associativity, instead of simply and consistently using parenthesis. Quick without looking: can you tell me what the precedence and associativity of the ternary ?: operator is? The designer of PHP got it wrong (which isn't surprising given his proudly self proclaimed contempt towards computer science and incompetence at parser writing), but then millions of PHP programmers also learned it the wrong way. https://en.wikiquote.org/wiki/Rasmus_Lerdorf https://en.wikiquote.org/wiki/Rasmus_Lerdorf Do you really want any of those people who were corrupted by PHP messing around with your code, if you relied on it being one way, and they assume it works the other way? It's not that you can't tell what it actually does, it's that you can't tell what the person who wrote it actually meant, which is more important than what it actually does, especially when it has bugs. Don't do many operations on one line, AND do use parenthesis, AND do use indentation, with no exceptions except for very simple expressions. Take every opportunity to use line breaks and vertical alignment to make symmetry and repetition and nesting visually obvious, like: float distance = sqrt( (x * x) + (y * y)) Redundant parens, plus breaking expressions into multiple lines and indenting according to depth, unambiguously express programmer INTENT, so the reader doesn't need to wonder if the person who wrote it had a clue or was just showboating. Just use parenthesis, and put a comment on it, sailor. https://wellcomecollection.org/works/m33njwx3/items https://wellcomecollection.org/works/m33njwx3/items My copy of The Little Schemer won't open to page 13 because of the jelly stains. https://vpb.smallyu.net/[Type]%20books/The%20Little%20Schemer.pdf https://vpb.smallyu.net/[Type]%20books/The%20Little%20Scheme...
- dahfizz 4y agoWhat is with the gay sailor condom ad? You're being completely ridiculous. I'm glad you enjoy Forth so much, I guess. I'm sure postfix will catch on any day now.
- coldpie 4y agoI agree, but I'm still cracking open that page when I'm reading someone else's code. I guess you work solo most of the time?
- dahfizz 4y agoNope, I work on a team. I guess we all have similar instincts about what is readable.
- mrguyorama 4y agoI don't know what it is with C programmers and programming "terseness". It hasn't been the 60s since the 60s, and you have gobs of memory available, your source code can have syntactic sugar for the purpose of readability and the world won't end.
- dahfizz 4y agoCan you give an example of syntactic sugar in a modern language that makes order of operations a non-issue?
- rdlw 4y agoParentheses
- dahfizz 4y agoYeah, that's why I said > Just use parentheses Not sure what that has to do with memory usage..?
- rdlw 4y agoJust to clarify, I'm not the original person you replied to, and we all agree about using parentheses. mrguyorama just implied that the only reason you would check the operator precedence chart would be to shave a few bytes off the size of your source code, which has not been a reasonable reason to do anything for many decades, and yet C programmers seem to like to do it anyway.
- 1-more 4y agoThese aren't syntactic sugar, but formatters. I rather like Ormolu for Haskell and elm-format for Elm. I occasionally type a bunch of parenthesis so that I'll for sure have the right order of operations. Then the format on save removes the redundant ones. It's delightful. The typecheckers and tendency to wrap primitives in a semantically significant constructor help with that.