OK a bit more detail, there are advantage to not having state, or at least making the system deal with it it lead to some really elegant code.
Just like most languages it has it limits, mainly input and output.
I have used haskell and I think it has some really good concepts but is plagued by people using being to terse and cryptic, 1 character names for types are not good yes you can work out what it is doing but you shouldn't have to, and the use of random definable operator like '' makes it unreadable without a reference manual for beginners. A part of good code is being clear, being cleaver isn't usually as important as being understandable. At least the uses I have seen generally been quite cryptic.
If the haskel community want haskel to popular they should make an better effort to make it more understandable.