[Haskell-cafe] Properties of monads
Benja Fallenstein
benja.fallenstein at gmail.com
Sun Nov 18 13:30:02 EST 2007
Hi Radosław,
You should be able to write this with MaybeT as follows:
getStrip :: IO ( Maybe String )
getStrip = runMaybeT $ do
pageContent <- liftIO $ downloadFile mainPageAddress
let x = patternForStrip pageContent
print x
z <- x
liftIO $ downloadFile $ mainPageAddress ++ z
If you can do without the 'print', you should be able to write it as:
getStrip :: IO ( Maybe String )
getStrip = runMaybeT $ do
pageContent <- liftIO $ downloadFile mainPageAddress
z <- patternForStrip pageContent
liftIO $ downloadFile $ mainPageAddress ++ z
You can find MaybeT here:
http://www.haskell.org/haskellwiki/New_monads/MaybeT
Best,
- Benja
On 11/18/07, Radosław Grzanka <radoslawg at gmail.com> wrote:
> Hello,
> I am writing some toys programs to learn and try to apply Monads
> properties (without success, I must say). Although I spent half a day
> on this code:
>
> http://hpaste.org/3957
>
> I couldn't simplify (shorten) getStrip function. After reading "Doing
> it with class" (
> http://www.haskell.org/all_about_monads/html/class.html ) I had an
> impression that I could "collapse" cases using some Monads properties.
> But maybe I misunderstood something.
>
> Can anyone look at it and give me a pointers?? (I don't mind if the
> code becomes unreadable a bit.)
>
> Thank you,
> Radek.
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
More information about the Haskell-Cafe
mailing list