<div dir="ltr"><div>Right. I definitely want the lazy behavior.<br><br></div>Thanks<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Mar 31, 2013 at 1:29 PM, Brent Yorgey <span dir="ltr">&lt;<a href="mailto:byorgey@seas.upenn.edu" target="_blank">byorgey@seas.upenn.edu</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Unfortunately, with the definition<br>
<br>
  f = getLine : f<br>
<br>
this will not work.  &#39;sequence f&#39; has to do *ALL* the IO before you<br>
can process even the first String in the resulting list.  Since it is<br>
infinite, it will just sit there reading lines forever but never<br>
letting you process them.<br>
<br>
I think in this case using [IO String] is actually a good solution.<br>
<span class="HOEnZb"><font color="#888888"><br>
-Brent<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Sun, Mar 31, 2013 at 12:24:33PM +0200, Nathan Hüsken wrote:<br>
&gt; Try<br>
&gt;<br>
&gt; sequence :: Monad m =&gt; [m a] -&gt; m [a]<br>
&gt;<br>
&gt; I thinkg<br>
&gt;<br>
&gt; sequence f :: IO [String]<br>
&gt;<br>
&gt; should be what you want.<br>
&gt;<br>
&gt; On 03/31/2013 12:19 PM, Ovidiu D wrote:<br>
&gt; &gt;I have the function f which reads lines form the stdin and looks like this:<br>
&gt; &gt;<br>
&gt; &gt;f :: [IO String]<br>
&gt; &gt;f = getLine : f<br>
&gt; &gt;<br>
&gt; &gt;What I don&#39;t like is the fact that the line processing I&#39;m doing will<br>
&gt; &gt;have to be in the IO Monad<br>
&gt; &gt;<br>
&gt; &gt;I would like to make this function to have the signature<br>
&gt; &gt;f : IO [String]<br>
&gt; &gt;...such that I can get rid of the IO monad and pass the pure string list<br>
&gt; &gt;to the processing function.<br>
&gt; &gt;<br>
&gt; &gt;Can I do this?<br>
&gt; &gt;<br>
&gt; &gt;Thanks<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;_______________________________________________<br>
&gt; &gt;Beginners mailing list<br>
&gt; &gt;<a href="mailto:Beginners@haskell.org">Beginners@haskell.org</a><br>
&gt; &gt;<a href="http://www.haskell.org/mailman/listinfo/beginners" target="_blank">http://www.haskell.org/mailman/listinfo/beginners</a><br>
&gt; &gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Beginners mailing list<br>
&gt; <a href="mailto:Beginners@haskell.org">Beginners@haskell.org</a><br>
&gt; <a href="http://www.haskell.org/mailman/listinfo/beginners" target="_blank">http://www.haskell.org/mailman/listinfo/beginners</a><br>
<br>
_______________________________________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org">Beginners@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/beginners" target="_blank">http://www.haskell.org/mailman/listinfo/beginners</a><br>
</div></div></blockquote></div><br></div>