Good price.
You ever have one of those moments when you just put 2 and 2 together, and also that you should have had that realization many years ago?
I just realized what NaN stands for…
This must be what people who get told “you can just wait for the shower water to warm up before hopping in” feel like.
dirty onanists spilling their seed
Lennin died, with him died lenninism. Stalin died, with him died stalinism. Grandpa Onan, don’t die!
I like how the code adds a 0 at the start.
The code probably checks if the following number is greater than 10 (which fails for NaN) and otherwise adds a 0 in front.
“That makes it free, right?”
Not only that, it makes your entire purchase free due to NaN arithmetic.
no, it costs NaN, now remove NaN from your account…
…oh no
But as you mention, NaN propagates.
So at checkout, your wallet will become NaN, as the shops money balance. Then it will spread to your bank account and before you realize what happens the whole banking-district is in flames.
cost = “arm” + “leg”;
0*(NaN)… So does that mean the price IS a number?
Isn’t any math operation involving NaNs also a NaN? At least that’s my gut feeling.
Based on my frequent exploding and vanishing gradients, that would be a yes.
In JS, it’s just NaN if my browser’s console is to be believed. I suspected it would probably be
{object}
for no clear reasonfor no clear reason
JS That’s the reason. The language has an awful type system.
I think its type system is “okay”, I mean inherently dynamic typing is pretty error-prone. But its type coercion algorithms are bonkers. Also that whole “NaN ≠ NaN” business…
Also that whole “NaN ≠ NaN” business…
See that’s one of the parts that is actually almost in line with other languages. In Go, for example,
nil ≠ nil
becausenil
is, by definition, undefined. You can’t say whether one thing that you know nothing about is at all like something else that you know nothing about. It really should raise an exception at the attempt to compare NaN though.If nil ≠ nil, how do you compare a variable to the literal?
You’d first check for nil values, then compare like normal. Extra step, yes, but it keeps you from hitting NPEs through that route.
You’d first check for nil values
What does this mean, if not the same as
then compare like normal
?
I suppressed most of my former js knowledge but I guess it’s a string now.
Javascript carcinization.
0*NaN = NaN
If 0/0 is NaN, then does that mean 0*NaN = 0*0/0 = 0?
related: https://en.wikipedia.org/wiki/Some_Thoughts_on_the_Science_of_Onanism
by Mark Twain, btw. short read, and hilarious
In my language, onanování is masturbating. And onan is a mild insult insinuating that someone wanks a lot.
It’s onanism in English. And it’s rather stupid to call it that because Onan didn’t masturbate, he used the pull out method to avoid getting his sister-in-law pregnant with his brother’s kid. (yes, I know that sounds weird but that’s the story)
I figure it is called that because both the pull-out method and masturbation for penis-havers involves spilling your seed somewhere outside of a woman’s womb.
Yes, from a superficial viewpoint they are similar. And from a superficial viewpoint shooting a practice target is similar to shooting a person dead. It would be rather stupid to refer to target practice as murder.
I get your point, but considering that we got the word “Onanism” from the Bible I was thinking about some Christian denominations’ views of why God wasn’t happy with Onan in the Bible: because he ejaculated without trying to procreate. That is why I thought it was relevant to tie those two things together like that.
Onan’s crime was greed not lust. He did not want to provide for Tamar or her potential children.
According to Wikipedia, Biblical scholars essentially agree with you, to the point
Bible scholars even maintain that the Bible does not claim that masturbation would be sinful.
which is pretty cool especially given my prior belief that most people agreed it was about lust. Wikipedia does also say that some Christian denominations have interpreted the sin to be as lust, though.
And Catholicism, at least, still doesn’t like the ejaculation without procreation:
Since, therefore, the conjugal act is destined primarily by nature for the begetting of children, those who in exercising it deliberately frustrate its natural power and purpose sin against nature and commit a deed which is shameful and intrinsically vicious.
Small wonder, therefore, if Holy Writ bears witness that the Divine Majesty regards with greatest detestation this horrible crime and at times has punished it with death. As St. Augustine notes, “Intercourse even with one’s legitimate wife is unlawful and wicked where the conception of the offspring is prevented. Onan, the son of Juda, did this and the Lord killed him for it.”
(number 54 and 55 in a Pope Pius XI encyclical)
(I never thought I’d be discussing religion on programming.dev lol)