4 ms·
You're right, I'm only talking about how complicated the core language is, not how hard it is to use. Having worked professionally with both, I'd say OCaml has
by wyager 9y ago
You're right, I'm only talking about how complicated the core language is, not how hard it is to use.
Having worked professionally with both, I'd say OCaml has a gentler learning curve, but you have to do more work forever after getting over the curve.
- naasking 9y ago> I'd say OCaml has a gentler learning curve, but you have to do more work forever after getting over the curve. Why do you suppose that is? Lack of type classes/overloading?
- wyager 9y agoThat's a big part of it. If you want to serialzie a list of optional ints, you're going to have to write something like List.serialize (Option.serialize Int.serialize) my_list Whereas in Haskell it's just serialize myList This also shows up with equality and comparison, numeric operators, etc. (which beyond being syntactically inconvenient also makes data structures trickier to use ,usually with a somewhat convoluted functorized data structure module). There are also some things about the language that break composability. For example, the presence of mutable references means you can't compose polymorphic functions (sounds weird, I know), which is inconvenient. It basically boils down to less ability to front-load work by creating good abstractions.
- naasking 9y agoSo a reimagining of OCaml with say, implicits, would go a long way to easing these issues? Re:composing polymorphic functions, I'm not sure I follow. Do you mean the value restriction?