4 ms·
ML is a entire major language family that itself has roots in lisp. I've starred the "important" ones you'd probably know. In the "core" ML family: original ML
by hajile 7y ago
ML is a entire major language family that itself has roots in lisp. I've starred the "important" ones you'd probably know.
In the "core" ML family: original ML, Standard ML (SML), Concurrent ML (an extension of SML), Polly ML (yes, it's a different language that SML is implemented on top of).
Then there was the "lazy" family: Idris, Lazy ML, Miranda, Haskell, Purescript, and Elm (though it's not actually lazy).
Then you have the "pragmatic" family: Caml, Ocaml, Coq, F#, f-star, Alpaca, and Scala (these last two are somewhat less related here).
You also have the rough category of ML without a GC: ATS and Rust
There's a few others, but I'm not so familiar with them.
- zelly 7y agoHow are any of these coming from Lisp? I was under the impression that ML was a completely separate camp from Lisp.
- hajile 7y agoML was implemented in Stanford Lisp on a DEC10. The layout of the language is very lispy. Make parens around functions non-optional and add them around let, and a couple other constructs makes the code almost indistinguishable from lisp. First-class functions everywhere, linked lists, and garbage collection were also very-much tied to lisp at the time. Initially being implemented on top of Lisp is probably a key reason these were present.
- dllthomas 7y agoIdris is eagerly evaluated.
- hajile 7y agoYou are correct (I'm sorry, I don't know much more than what I read in a cursory inspection some time ago). I should have called it the "lazy and/or completely immutable" category.
- owl57 7y agoAs are PureScript and Elm. Maybe "lazy" is just no longer a good name for the branch as a whole, given that it keeps growing new eager leaves.
- deckar01 7y agoI'm not asking what Standard ML is, I'm saying this is a bad title that should be curated to make it more useful as the title of a HN submission.