StandardML is the most practical functional programming language IMO. It concedes that mutation improves performance, laziness is hard for humans to optimize, and side effects exist. At the same time, it has avoided the weirdness of Ocaml or the unnecessary complexity of F#.
It's use of structural typing (like Typescript) rather than nominal typing is great. It winds up feeling a lot like a scripting language, but with better type safety than most non-scripting languages. The CML (concurrent ML) proposals are also much more mathematically grounded, consistent, and nice to use compared to most other languages.
It's use of structural typing (like Typescript) rather than nominal typing is great. It winds up feeling a lot like a scripting language, but with better type safety than most non-scripting languages. The CML (concurrent ML) proposals are also much more mathematically grounded, consistent, and nice to use compared to most other languages.