"Functional record update" [1] was the one missing feature that bothered me most about Standard ML. If you want to change one element in a record, you've got to specify explicitly that every other element in the record didn't change.<p>[1] <a href="http://www.pllab.riec.tohoku.ac.jp/smlsharp/docs/1.0/en/Ch4.S4.html" rel="nofollow">http://www.pllab.riec.tohoku.ac.jp/smlsharp/docs/1.0/en/Ch4....</a>
SML# is one of the lesser known SML implementations, although it's a quite good one. The only thing that I found impractical,... you can only link 32bit libs, which is very odd on todays 64bit Systems.<p>Nevertheless, the thing I like most at SML# is the excellent FFI. You can just pass SML-records or SML-functions to C. SML# is very powerful if you code your applications in SML and C.
Good to know about this alternative. SML was a great language, and deserves to live on. OCaml is not really a successor to SML because of its object-oriented features and its lack of backward compatibility to SML.
sorry to ask, but <i>who</i> uses SML nowadays and <i>for what</i> do they use it? (I know about it's descendants or languages influenced/inspired by it, like OCaml, F# and the less related Haskell, but nothing hits the news about SML projects.)