What are the uses of SML in the real word?
Are its practical uses similar to that of Prolog?
At work, we use SML in actual real-life software products which we ship to paying customers. We use MLton to compile our SML code to native code running on Windows, Linux, Solaris, AIX, and HP-UX. It works well, and we're happy with our choice.
I don't see SML as particularly suited to any clear niche. Indeed, SML is a very well-rounded general-purpose programming language. Prolog is well established in the logic programming/artifical intelligence/rule based system solving niche(s), but it's used for a lot of things besides these traditional domains.
For anyone who is considering using SML for a software project in the "real world", here are some of the advantages and disadvantages we've noticed so far:
Disadvantages: