3 ms·
>The law of non-contradiction refers to the same proposition P in both positions, simultaneously You are describing quantum superposition, but then you are str
by ukj 7y ago
>The law of non-contradiction refers to the same proposition P in both positions, simultaneously
You are describing quantum superposition, but then you are straddling the classical and quantum paradigms when interpreting the LNC.
How many instructions/CPU cycles does it take to evaluate p ∧ ¬p? More than 1? Then what do you even mean by "simultaneously"?
>which in your case is a programming function with side effects, neither a proposition nor a mathematical function
You are making my argument for me. The LNC is an axiom of Mathematics/Logic. It's not a law as in a law of physics.
And so if a physical system happens to violate it - it's hardly a big deal.
The real world actually contains things which are in two (or more) states simultaneously. We call them cubits and we use them to represent uncertainty.
What I have shown is a mutating getter. It's not supposed to be novel or original (I don't know why you are measuring me up to such ludicrous ideals). I am simply demonstrating to you a real-world scenario in which interacting with a system alters its state (deterministically or otherwise) which allows me to do the "impossible": evaluate p ∧ ¬p as True. It's just a race condition.
Side-effects are the norm, not the exception throughout the universe in general. Your classical computer would have no CPU registers, no cache, no memory, no persistence without side effects.
If the Mathematical religion frowns upon side-effects, why should I care about it when it clearly doesn't correspond to the universe I live in?
And if you are upset about my "trickery" (oh no! Physics is cheating!) here is an implementation that doesn't mutate global state.
https://repl.it/repls/CompassionateImmenseConditional https://repl.it/repls/CompassionateImmenseConditional
- the_af 7y ago> What I have shown is a mutating getter. It's not supposed to be novel or original A mutating getter doesn't violate the laws of non-contradiction, because a getter is not a proposition. In fact, if you use a getter at all, you're outside non-contradiction. The rest of your post is ridiculous, but feel free to keep equivocating this with quantum physics or cubits or whatever, instead of acknowledging that rather than breaking the law of non-contradiction, your real assertion is "my language can mutate global variables behind the scenes". Much less impressive, right? Also, you keep avoiding to mention what your "problem space" is. I suspect this is because your "problem space" is rather pedestrian and doesn't require anything you claim it does. Not upset, by the way. That's chicanery on your part. Usually done by people who know they are losing the argument ;)
- ukj 7y ago> A mutating getter doesn't violate the laws of non-contradiction, because a getter is not a proposition. In fact, if you use a getter at all, you're outside non-contradiction. Q.E.D you are admitting that non-contradiction it's an axiom of language and not an actual law. As in law of physics. I don't expect you to answer my question re: the number of CPU cycles you consider as being a "simultaneous" evaluation of p ∧ ¬p least you had to admit the LNC is incoherent ;) > That's chicanery on your part. Usually done by people who know they are losing the argument ;) Isn't this what somebody who knows they are losing the argument would say ? ;) But if you are in it to win arguments - have a noddie badge. You win The Internet. My problem-space is the CAP theorem. Global-scale distributed systems. Where most of the complexity is 'side effects'. But we call it network IO/communication/persistence/API calls etc. Haskell would add zero value, because the bugs are rarely about type errors, and predominantly about Byzantine failures. It's so pedestrian, it's probably your home page.
- the_af 7y ago> Q.E.D you are admitting that non-contradiction it's an axiom of language and not an actual law. As in law of physics. But it was you who introduced the law of non-contradiction in this conversation, then wrote a program that had nothing to do with it, and when called out you started with this nonsense about physics, cubits and what it means for "you" to be "you" and other unrelated topics. Either your program is about the LNC or it isn't, and if it isn't (as it turned out to be the case) why bring it up in the first place. The CPU thing is nonsense and I don't see what I have to answer about it. In contrast, the Expression Problem is directly related to your initial assertion about extensibility, but instead you talked about something else. Getters/setters aren't about extensibility, by the way. Finally, Haskell excels at IO, network, API calls, etc. People write distributed sysyems in Haskell -- why on earth would you think otherwise? > It's so pedestrian, it's probably your home page. I don't understand this. It reads like an attempt at trolling but I don't understand what it means. In which sense should I be offended? Google is my home page, does that help you somewhat?
- tome 7y ago