4 ms·
Try Standard ML or ocaml. You may be surprised how far the module system can take you, and how limited type classes really are for expressing abstractions. On a
by discarded1023 4y ago
Try Standard ML or ocaml. You may be surprised how far the module system can take you, and how limited type classes really are for expressing abstractions. On a different vector, you can see the same story -- type classes are convenient but too limited -- in the development of abstract algebra/topology/analysis/... in Isabelle/HOL.
As for laziness, things don't work out too well for a variety of reasons. Bob Harper laid out several many years ago. See e.g. https://news.ycombinator.com/from?site=existentialtype.wordpress.com&next=2481042 https://news.ycombinator.com/from?site=existentialtype.wordp...
- wirrbel 4y agoI really like standard ML. Modules are great but type classes would be … more pragmatic?
- bmitc 4y agoMy preference are ML dialects, but it sounds like Idris is something you should check out. It's strict by default and has type classes and dependent types.
- wirrbel 4y agoIdris was always filed in my head as some estoric/academic/obscure thing, will have a look at it.
- bmitc 4y agoI actually think it's probably less academic than Haskell or Racket. It's intended to be a practical language that people build things with. It just has an advanced type system and a small community.
- erk__ 4y agoThere is even a SML that does not use a GC* but instead does "region based" memory mangement. https://elsman.com/mlkit/about https://elsman.com/mlkit/about *most of the time.