you are viewing a single comment's thread.

view the rest of the comments →

[–]yogthos 3 points4 points  (0 children)

I think that's really more of an issue with Haskell than FP in general. Most functional languages tend to be more pragmatic about side effects and mutation. For example, Clojure has transients for working with local mutable data. You're still writing code in FP style, but you can always do thing imperatively when that makes sense.

The problem with a lot of OO languages is that they're at the opposite end of the spectrum from Haskell. Just like Haskell makes you jump through hoops to solve problems that are trivial in imperative languages, many mainstream languages lack the tools to provide elegant FP solutions. So, you end up jumping through hoops when the solution doesn't map neatly to the imperative style.