Sort:  

SML is a relatively pure language, so it is with less clutter, great for teaching but nit good for real world problems. It can be used but it would be a poor choice.

But I suppose then that the one who learns the SML language can program whatever, given the difficulty that it presents.

It is a normal functional language :) Not harder than any other ;)

Well, all serious computer science students I've talked to so far (you know, those who don't just take the programming courses but also all the other stuff attached to the degree) think that SML is horrible to actually work with. I haven't really met many people who've used. I guess it's a bit impractical for actual projects and more suitable to understand the concepts of programming.

That is, it is more advisable to use SML more to practice programming. It shows that it is very complicated to do.

I'd say the best way to learn programming is not about the language but about the concepts. Once you understand them, all languages become tools and learning a new one is as easy as learning it's quirks and syntax. But if all you know is a hammer, everything becomes a nail.