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

wren ng thornton wren at freegeek.org
Fri Jul 16 00:17:36 EDT 2010


C K Kashyap wrote:
> Thanks Daniel,
> 
> Better refactorability.
>> If you're using monadic style, changing from, say,
>> State Thing
>> to
>> StateT Thing OtherMonad
>>
>> or from
>> StateT Thing FirstMonad
>> to
>> StateT Thing SecondMonad
>>
>> typically requires only few changes. Explicit state-passing usually
>> requires more changes.
> 
> So, performance gain (runtime/memory) is not a side effect of Monadic style
> right?

Generally speaking, right: monadic style won't improve performance.

However, using monadic notation may allow you to change the backing 
monad to a different representation of "the same" computation, thereby 
giving asymptotic improvements[1]. However, the improvements themselves 
are coming from the different representation; the use of monadic 
notation just allows you to switch the representation without altering 
the code.


[1] http://www.iai.uni-bonn.de/~jv/mpc08.pdf

-- 
Live well,
~wren



More information about the Haskell-Cafe mailing list