3 ms·
I think it's about if there's a possibility of it being zero. Of course there's no way to tell at compile time that a value will definitely be zero. So, in pse
by hgoel 6mo ago
I think it's about if there's a possibility of it being zero. Of course there's no way to tell at compile time that a value will definitely be zero.
So, in pseudocode
int div(int a, int b): return a / b;
Would probably be a compile time error, but
int div(int a, int b): return b == 0 ? ERR : (a /b);
Would not, or at least that's what I'd expect.
- still_grokking 6mo agoOr it's just some AI brain fart… The whole things looks vibe-coded, and vibe-designed.
- rdevilla 6mo ago> Of course there's no way to tell at compile time that a value will definitely be zero. Yes there is. Dependently typed languages like Idris can inspect terms at the value-level during compile time. Rather, instead of proving that the divisor will be zero, you must instead statically prove that the divisor cannot be zero; otherwise the code will not typecheck.
- hyperhello 6mo agoOkay, int integer_division(int a, int b) { if (b!=0) return a/b; raise(SIGFPE); } Great.
- rdevilla 6mo agoYou don't appear to understand the difference between runtime and static analysis/compile time, or term-level and type-level.
- hyperhello 6mo agoGreat! Explain it to us while I read to my kid!
- cjbgkagh 6mo agoThe ‘let me google that for you’ is set to be replaced with ‘let me ask ChatGPT for you’.
- rdevilla 6mo agoDon't get mad because you're too lazy to even ask the AI. You are first to be replaced in the workforce. Or maybe it's over your head and you should just stick to reading children's fiction after all. Want some colouring books too?
- hyperhello 6mo agoYes! We can always use more books and toys here!
- imtringued 6mo agoThis is a very antagonistic comment. Some people would call it "passive aggressive". Dude, if you're reading to your kid you're clearly busy doing something else. No matter how simple the concept is, if you don't pay attention you're not going to get it so it's a failure on your part and not a failure on the part of the person patiently trying to explain something to you.
- deleted 6mo ago[deleted]
- derdi 6mo agoNo. In this type of language, the typical division function does not check against zero. It has a precondition that requires the caller to ensure that the divisor is not zero. If the data the caller has is completely arbitrary, then yes, the caller must use an if statement or similar. If the caller knows something about its data and can be sure that the divisor is not zero, then it doesn't need to use an if statement. But it might need to convince the proof checker that it knows what it's doing.