Ciste funkcionalni jakzyky jako je Haskell maji problem s tim jak vyjadrit stav neceho, prave protoze v nich nejsou promnenne. A svet kolem nas ma mnoho stavu, proto nejsou na vsechno vhodne. Stav lze reprezentovat pomoci predavani hodnoty mezi funkcema ktere ho mohou zmenit nebo pomoci 'continuacion' nebo 'monad', takove programy nejsou trivialni viz:
http://cm.bell-labs.com/cm/cs/who/wadler/topics/monads.html#marktoberdorf
Jinak soucasna implementace Haskellu tez neni zrovna moc vykonna:
http://www.bagley.org/~doug/shootout/craps.pl(na rozdil od jinych funkcionalnich jazyku viz. ocaml)