GŁnther,<br><br>This is definitely one way to do it.† If you want to be able to &quot;quit&quot; the IO action in the middle of a lengthy computation, that is one way that I, personally, find very straightfoward.† You can find an example of this in my Advgame package on Hackage, which uses this method to quit running the main action (although I could have used a conditional to determine whether to continue running the main loop, but continuations are more fun :P).† <br>
<br>Small example:<br><br>&gt; foo = (`runContT` id) $ do<br>&gt;††† dummy &lt;- callCC $ \exit -&gt; forever $ do<br>&gt;††††††† line &lt;- liftIO getLine<br>&gt;††††††† if line == &quot;quit&quot; then exit $ return () else ... -- do whatever else here...<br>
&gt;††††††† <br><br>Cheers,<br>†- Tim<br><br><div class="gmail_quote">2010/6/10 GŁnther Schmidt <span dir="ltr">&lt;<a href="mailto:gue.schmidt@web.de">gue.schmidt@web.de</a>&gt;</span><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Hi everyone,<br>
<br>
I&#39;m about to write a rather lengthy piece of IO code. Depending on the results of some of the IO actions I&#39;d like the computation to stop right there and then.<br>
<br>
Now I know in general how to write this but I&#39;m wondering if this is one of those occasions where I should make use of the Cont monad to make an early exit.<br>
<br>
GŁnther<br>
<br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</blockquote></div><br>