| ▲ | hgoel 3 hours 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. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | rdevilla 2 hours ago | parent | next [-] | |||||||||||||||||||||||||||||||||||||||||||||||||
> 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. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | still_grokking 2 hours ago | parent | prev [-] | |||||||||||||||||||||||||||||||||||||||||||||||||
Or it's just some AI brain fart… The whole things looks vibe-coded, and vibe-designed. | ||||||||||||||||||||||||||||||||||||||||||||||||||