Ocaml, Standard ML, F# or maybe some lesser known one? Right now I'm mainly using Go because of its simplicity, rich ecosystem (many libs), great docs, great tooling etc.
I like OCaml and I like F#. The choice between them is really "do you like .NET?"
As a Java programmer I've been amused at how ideas have diffused slowly from ML to Java such as the hotspot compiler & generational runtime (Sun hired somebody who did an academic project for a high-performance ML-famly runtime) as well as pattern matching, sealed classes, records, etc.
Much earlier on F# was hard to get started with especially if not on Windows. C# still gets a lot more coverage than F#, but it pretty much works out of the box with free Visual Studio Community or Visual Studio for Mac (not VS Code) and some setup tutorial instructions.
And as a (former) Java programmer, I've been frustrated at how slowly ideas have come. Union types? Only in multi-catch expressions.
I don’t know, but I find the book “Purely Functional Data Structures” presents code using Standard ML in a way that is completely elegant and beautiful. I haven’t coded much ML myself, but the way it’s presented in the book is some of the cleanest code I’ve ever gazed upon.
As a Java programmer I've been amused at how ideas have diffused slowly from ML to Java such as the hotspot compiler & generational runtime (Sun hired somebody who did an academic project for a high-performance ML-famly runtime) as well as pattern matching, sealed classes, records, etc.