I’m also on Mastodon as https://hachyderm.io/@BoydStephenSmithJr .

  • 0 Posts
  • 53 Comments
Joined 2 years ago
cake
Cake day: October 2nd, 2023

help-circle
  • Oddly enough, in Haskell (as defined by the report), length is monomorphic, so it just doesn’t work on tuples (type error).

    Due to the way kinds (types of types) work in Haskell, Foldable instances can only operate over (i.e. length only counts) elements of the last/final type argument. So, for (,) it only counts the second part, which is always there exactly once. If you provided a Foldable for (,) it would also have length of 1.






  • Not having a separate compilation step absolutely affects error handling. With a compilation step, you can have errors that will only be seen by and must be address by a developer prior to run time. Without one, the run time system, must assign some semantics to the source code, no matter how erroneous it is.

    No matter what advisory “signature” you imagine for a function, JS has to assign some run time semantics to that function being called incorrectly. Compiled languages do not have to provide a run time semantics to for signatures that can be statically checked.



  • So, the language isn’t compiled (or wasn’t originally) so they couldn’t make min() be an error that only a developer saw, it has to be something that the runtime on the end-user system dealt with. So, it had to be assigned some value. Under those restrictions, it is the most mathematically sound value. It makes miniumum-exactly-2(x, min(<…>)) be exactly the same as min(x, <…>), even when the “<…>” has no values.

    As a developer, I see a lot of value in static analysis, including refusing to generate output for sufficiently erroneous results of static analysis, so I don’t like using JS, and the language that I tinker with will definitely have a separate compilation step and reject the equivalent of min(). But, if I HAD to assign something like that a value, it probably would be a representation of infinity, if we had one (probably will due to IEEE floats).

    HTH











  • Some people hate it, including some independent developers. I wouldn’t mind going without it, if there was a Free Software library management alternative. I want something to track what I have installed (because I’ve “lost” things and reinstalled them before) and something that has a decent uninstall.

    I also get some benefit from the store integration, but I can understand developers being annoyed at the 30% “steam tax”. I’d gladly purchase using some other method, if I didn’t have to sacrifice library functions from previous paragraph.