))<>((
))<>((
))<>((
As a software developer, the less ambiguous your notation is, the better it is for everyone involved. Not only will I use brackets, I'll split my expression into multiple rows and use tabs to make it as readable as humanly possible. And maybe throw a comment or 2 if there's still some black magic involved
That almost seems cute next to the shit the obfuscated c contest pulls off. https://www.ioccc.org/years.html
Well, this is exactly what mathematicians do.
As a professor said, most programming languages don't care about readability and whitespace. But we care because humans need it to parse meaning. Thus, write code for people, not for the machine. Always assume that someone with no knowledge of the context will have to debug it, and be kind to them. Because that someone might be you in six months when you have completely forgotten how the code works.
Exactly. You read code way more times than you write it, so it makes all the sense in the world to prioritize readability.
Source code is for humans, then the compiler turns it into code for machines.
Yep, if you're writing code for a machine, just do it in binary to save compilation time (/s just in case). Also, you in six months will indeed be someone with no knowledge of the context. And every piece of code you think you write for one-time use is guaranteed to be reused every day for the next 5 years
This. Always be kind to your future self.
Yeah I totally agree. You can minimize and optimize as part of your build procedure/compilation but the source code should be as readable as possible for humans.
I had someone submit a pull request recently that, in addition to their actual changes, also removed every single parenthesis that wasn't strictly necessary in a file full of 3D math functions. I know it was probably the fault of an autoformatter they used, but I was still the most offended I've ever been at a pull request.
Autoformatter? More like obfuscator
I genuinely hate being human for this stuff. So many things have such crazy computational shortcuts, it's sometimes difficult to remember which part represents reality. Outside of the realm of math, where "imaginary" numbers are still a touch of enigma to me, so many algorithms are based on general assumptions about reality or the specific task, that the programmatic approach NEVER encapsulates the full scope of the problem.
As in, sometimes if you know EXACTLY how a tool works, you might still have no idea about the significance of that tool. Even in a universe where no one is lazy, and everyone wants to know "why?", the answers are NOT forthcoming.
You're a good human being.
As someone who used to code in Lisp, I'm all for excessive paranthesis use.
Ok but that's unrelated to putting some numbers and operations in a calculator. No one is going to proofread that. If anything, you simply calculate it again.
Also works if you dont trust yourself with correctly ordering your operations.
I, my head, shake.
Also known as: Japanese speaker
Ok man. Wtf did I just watch...
I get it. We are here on the somehow dark side of the internet..
But THIS.... without any context. i mean. Im questioning live here man. What do you want to express with that?
back and forth, forever.
Suuuuuch a weird movie lol
(I used(LISP)one time(and it(permanently))changed the way I (program(computers)))
Did it change it in a positive way?
Negative, as you feel bad anytime you use a language that isn't lisp
This is why every calculator should be a RPN calculator.
I still have my HP 48 series calculator. It's a sturdy beast.
This is why every calculator should be a RPN calculator
No, this is why programmers should (re)learn the order of operations rules before writing a calculator.
(βΏ!βΏ) (βΏOβΏ)
( . ) ( . ) ( . Y . )
The underlying truth of this joke is: Programming syntax is less confusing than mathematical syntax. There are genuinely ambiguous layouts of syntax in math (to a human reader that hasn't internalized PEMDAS, anyways) whereas you get a compilation error if ANYTHING is ambiguous in programming. (yes, I am WELL aware of the frustrations of runtime errors)
Internalized PEMDAS without knowing it's literally the same thing as BODMAS is exactly the problem!
Counterpoint: C function pointers (or just C in general)
Also: sometimes, a mathematician just has to invent some concept or syntax to convey something unconventional. The specific use of subscript/superscript, whatever 'phi' is being used for, etc. on whatever paper you're reading doesn't have to correlate to how other work uses the same concepts. It's bad form, but sometimes its needed, and if useful enough is added to the general canon of what we call "math". Meanwhile, you can encapsulate and obfuscate things in software, sure, but you can always get down to the bedrock of what the language supports; there's no inventing anything new.
Yea, that's it. Math syntax was created for humans, and programming syntax had to always remain deterministic for computers. It's not an insult to either, just interesting how ambiguities show up often when humans are involved. I say 'often' for the general case: Math should be just as deterministic as programming, but it's not in some situations.
Improved readability is always good
My calculator says -2Β² = -4, so yeah...
Isn't the "-" order of operations the same as a multiply ? I think I learned powers take priority over the "-" so your calculator would be right.
But either way if it can cause confusion you should use parentheses.
I would never write -nΒ². Either β(nΒ²) or (-n)Β². Order of operations shouldn't be some sort of gotcha to trick people into misinterpreting you, it's the intuitive reading of a well constructed mathematical expression.
Either β(nΒ²) or (-n)Β². Order of operations shouldnβt be some sort of gotcha to trick people into misinterpreting you
It isn't. With β(nΒ²), nΒ² is already a single term, so the brackets aren't needed.
My calculator says -2Β² = -4
That's correct
I feel this in my bones
I've never seen a calculator that had bracket keys but didn't implement the conventional order of operations.
But anyway, I'm on Team RPN.
my dumb ass reading this: "Team rock paper nscissors"
RTS = rock taper scissors
FPS = frock paper scissors
https://plus.maths.org/content/pemdas-paradox
Even two casios won't give you the same answer:
https://plus.maths.org/content/sites/plus.maths.org/files/articles/2019/pemdas/calculators.png
Ah, I wasn't thinking of calculators that let you type in a full expression. When I was in school, only fancy graphing calculators had that feature. A typical scientific calculator didn't have juxtaposition, so you'd have to enter 6Γ·2(1+2) as 6Γ·2Γ(1+2), and you'd get 9 as the answer because Γ· and Γ have equal precedence and just go left to right.
There's no pemdas paradox, just people who have forgotten the order of operations rules
Even two casios wonβt give you the same answer:
The one on the right is an old model. As far as I'm aware Casio no longer make any models that still give the wrong answer.
Iβve never seen a calculator that had bracket keys but didnβt implement the conventional order of operations.
I've seen plenty
I just used the calc on window⦠it cannot respect order of operation
Yeah, I've tried several times to get Microsoft to fix their calculators. I've given up trying now - eventually you have to stop banging your head against the wall.
I recall that there is a myriad of memes of the form 'what is 4-2*3' under which there is always a never ending discussion of confidently incorrect dumbasses denying the existence of the multiplication before addition rule.
So your suspicion is at least not unreasonable
$((A+B))
Gotta use Lisp notation to be sure
Ooh I love brackets
Or, you know, you could simplify the terms?
sounds like work for a compooter
Unfortunately some calculators, such as Google's will ignore your brackets and put in their own anyway. You just gotta find a decent calculator in the first place.
It is also frustrating when different calculators have different orders of operations and dont tell you.
It is also frustrating when different calculators have different orders of operations and dont tell you.
Yeah, but to be fair most of them do tell you the order of operations they use, they just bury it in a million lines of text about it. If they could all just check with some Maths teachers/textbooks first then it wouldn't be necessary. Instead we're left trying to work out which ones are right and which ones aren't. Any calculator that gives you an option to switch on/off "implicit multiplication", then just run as fast as you can the other way! :-)
(> (explicit) (implicit))
My calculator uses a stack instead of brackets. #RPN4Life
me using sbcl for everything
Is the title a Requiem for a Dream reference?