<div class="gmail_quote">On 17 February 2011 21:02, Javier M Mora <span dir="ltr">&lt;<a href="mailto:jamarier@gmail.com">jamarier@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div id=":1vi">Yes, I&#39;m trying to learn/practice Design Patterns in Haskell making euler problems three times:<br>
<br>
1. Non Monad<br>
2. Ad-hoc Monad<br>
3. Standard Monad<br>
<br>
Thank you for help me in the 3rd Stage. I was trying to solve 2nd Stage. :-(</div></blockquote></div><div><br></div>Sorry for jumping over one of the stages then :)<div><br></div><div>For this problem though, I can&#39;t see what the semantics of your ad-hoc monad would be. You&#39;ll end up reimplementing a state monad, I suppose. If so, you can always check the definition of the &quot;standard&quot; state monad:</div>
<div><br></div><div><a href="http://hackage.haskell.org/packages/archive/mtl/1.1.1.1/doc/html/Control-Monad-State-Lazy.html#g:1">http://hackage.haskell.org/packages/archive/mtl/1.1.1.1/doc/html/Control-Monad-State-Lazy.html#g:1</a></div>
<div><br></div><div><a href="http://hackage.haskell.org/packages/archive/mtl/1.1.1.1/doc/html/src/Control-Monad-State-Lazy.html#State">http://hackage.haskell.org/packages/archive/mtl/1.1.1.1/doc/html/src/Control-Monad-State-Lazy.html#State</a></div>
<div><br></div><div>(Disclaimer: This one is mtl-1, in mtl-2 there is no State monad. There is the StateT monad transformer, whose Monad instance declaration might be a bit harder to get a grasp of, and State s is a type alias to StateT s Identity)</div>
<div><br></div><div>-- <br>Ozgur Akgun<br>
</div>