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

Reply via email to