logoalt Hacker News

hgoeltoday at 1:28 AM2 repliesview on HN

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.


Replies

rdevillatoday at 2:41 AM

> 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.

show 1 reply
still_grokkingtoday at 1:52 AM

Or it's just some AI brain fart…

The whole things looks vibe-coded, and vibe-designed.