3 ms·
Comparing to Python and Javascript, referencing an unused name in source without reaching it in your execution path will not cause an error. a=4 3+a 3
by projektfu 5y ago
Comparing to Python and Javascript, referencing an unused name in source without reaching it in your execution path will not cause an error.
a=4
3+a
3+a or 3+b
in a strongly-typed language, that would break compilation. So, Java and C will not compile those, either, but the article doesn't go into other cases where Haskell types are more useful for preventing various errors, such as Data.Result, which can either be a result of the type you expect or an error type, and which the compiler requires you to handle both cases. I think the write up would have benefited from some of the more advanced cases like this.
- mpweiher 5y agoThis isn't due to static typing (you appear to be mixing up strong vs. static typing). This will also not compile in Smalltalk. Nothing to do with static typing at all.