Dragan R writes: > On the net I read that "Impure functional programming doesn't really > need monads." > and "It appears that in the presence of mutable state, a lot of the > advantages of monads become moot."
Monads are an abstraction mechanism, so you never need them. You can always use the lower-level techniques in terms of which monads are implemented. The only language that has made monads nearly inevitable is Haskell, because its standard library is based on monads. But even in Haskell, monads can be avoided, at the cost of rewriting stuff that is already in the standard library. As with all abstractions, the real question is not whether you need them, but whether their use improves your programs. This depends as much on the programmer as on the problem, so there is not clear answer. As a rule of thumb, I'd say that you should consider using monads if your application 1) can profit from more than one of them, or 2) can profit from the generic monad operators. I probably use monad more than the average programme in my own code, but that's also because I happen to be familiar with them. I could very well live with fewer monads in my code. But once you know monads, they appear magically everywhere you look ;-) Konrad. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en