[Haskell-beginners] Ignoring the result of a monadic computation

Bastian Erdnüß earthnut at web.de
Fri Nov 19 17:31:28 EST 2010


On Nov 19, 2010, at 7:56, Tim Baumgartner wrote:

> Hi,
> 
> while learning about monads, I had something like
> 
> do
>   line <- getLine
>   something
>   putStrLn line
> 
> and I wondered if I could write it in one line, without naming of parameters.
> I finally came up with
> 
> getLine >>= ignore something >>= putStrLn
> 
> using
> ignore :: Monad m => m a -> b -> m b
> ignore m a = m >> return a
> 
> I'm satisfied with this solution but searching hoogle I didn't find a standard function for my ignore. Am I missing something?

I don't know if this is better, but you could also write

  getLine >>= (something >>) . putStrLn

Cheers,
Bastian


More information about the Beginners mailing list