
On 07/26/2010 08:13 AM, Kevin Jardine wrote:
On Jul 26, 3:00 pm, Vo Minh Thu
wrote: Also, just like with IO, maybe restructuring the code to separate monadic code would help.
The specific monad I am dealing with carries state around inside it.
I could revert to a pure system in many cases by simply passing the state as a parameter but then that defeats the point of the monad and clutters up my function calls.
Also, in other cases, I am using a module that defines its own monads and have no choice but to use them.
I think I would prefer a style of programming where monads are equal citizens to pure function calls. There are various hints that such a style of programming is possible but as I say, I have not found any clear tutorials on it.
It's not much of a tutorial, but Software Tools in Haskell[1][2] apparently uses monads more than some people are comfortable with, including stacks of monad transformers in the later chapters. [1] http://www.crsr.net/Programming_Languages/SoftwareTools/index.html [2] Heck, the later chapters are only marginally readable. -- Tommy M. McGuire mcguire@crsr.net