[Haskell-cafe] A question about State Monad and Monad in general

Ketil Malde ketil at malde.org
Mon Jul 19 04:17:44 EDT 2010

C K Kashyap <ckkashyap at gmail.com> writes:

> I looked at State Monad yesterday and this question popped into my mind.
> From what I gather State Monad essentially allows the use of Haskell's do
> notation to "invisibly" pass around a state. So, does the use of Monadic
> style fetch us more than syntactic convenience?

At it's heart, monads are "just" syntactic convenience, but like many
other syntactic conveniences, allows you to structure your code better.
Thus it's more about programmer efficiency than program efficiency.
(The "do notation" is syntactic sugar for >>= and >>).

> Again, if I understand correctly, in Mutable Arrays also, is anything
> getting modified in place really? If not, what is the real reason for better
> efficiency?

STArray and IOArrays are "magic", and uses monads to ensure a sequence
of execution to allow (and implement) in-place modification.  So this
gives you better performance in many cases.  Don't expect this from
generic monads.

If I haven't seen further, it is by standing in the footprints of giants

More information about the Haskell-Cafe mailing list