4 ms·
The writeup appears to be about as well-founded as the domain. "Increased abstraction means that you can write things much quicker and more simply than in anot
by mpweiher 5y ago
The writeup appears to be about as well-founded as the domain.
"Increased abstraction means that you can write things much quicker and more simply than in another language."
Except for any other kind of higher level language.
> [Haskell is much more bullet-proof than] IF NATALPLANET == “MARS”
As is any other non-stringly-typed language, so everything other than Tcl. And even Tcl is misunderstood, it's actually pretty awesome for its intended purpose. And of course you can write stringly typed code in Haskell just as much as you can in any other language.
and so on.
- projektfu 5y agoComparing 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.
- igouy 5y ago> [Haskell is much more bullet-proof than] IF NATALPLANET == “MARS” And perhaps there might be something like a Python Enum HOWTO https://docs.python.org/3.11/howto/enum.html https://docs.python.org/3.11/howto/enum.html
- sullyj3 5y agoFrom that same paragraph: > That said, there are ways of dealing with this in languages like Python, they're just a little more verbose and you don't get the compiler checking that you've exhaustively handled all cases, for example. It won’t compile, it won’t accept that idea.