[Haskell-beginners] [IO String] to IO [String]

Ovidiu D ovidiudeac at gmail.com
Sun Mar 31 12:48:23 CEST 2013


Right. I definitely want the lazy behavior.

Thanks


On Sun, Mar 31, 2013 at 1:29 PM, Brent Yorgey <byorgey at seas.upenn.edu>wrote:

> Unfortunately, with the definition
>
>   f = getLine : f
>
> this will not work.  'sequence f' has to do *ALL* the IO before you
> can process even the first String in the resulting list.  Since it is
> infinite, it will just sit there reading lines forever but never
> letting you process them.
>
> I think in this case using [IO String] is actually a good solution.
>
> -Brent
>
> On Sun, Mar 31, 2013 at 12:24:33PM +0200, Nathan Hüsken wrote:
> > Try
> >
> > sequence :: Monad m => [m a] -> m [a]
> >
> > I thinkg
> >
> > sequence f :: IO [String]
> >
> > should be what you want.
> >
> > On 03/31/2013 12:19 PM, Ovidiu D wrote:
> > >I have the function f which reads lines form the stdin and looks like
> this:
> > >
> > >f :: [IO String]
> > >f = getLine : f
> > >
> > >What I don't like is the fact that the line processing I'm doing will
> > >have to be in the IO Monad
> > >
> > >I would like to make this function to have the signature
> > >f : IO [String]
> > >...such that I can get rid of the IO monad and pass the pure string list
> > >to the processing function.
> > >
> > >Can I do this?
> > >
> > >Thanks
> > >
> > >
> > >_______________________________________________
> > >Beginners mailing list
> > >Beginners at haskell.org
> > >http://www.haskell.org/mailman/listinfo/beginners
> > >
> >
> >
> > _______________________________________________
> > Beginners mailing list
> > Beginners at haskell.org
> > http://www.haskell.org/mailman/listinfo/beginners
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://www.haskell.org/mailman/listinfo/beginners
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/beginners/attachments/20130331/a6076cac/attachment-0001.htm>


More information about the Beginners mailing list