[Haskell-cafe] Re: Returning a list element?

Donald Bruce Stewart dons at cse.unsw.edu.au
Wed Mar 22 02:01:42 EST 2006


dominic.steinitz:
> Robert Dockins <robdockins <at> fastmail.fm> writes:
> 
> > FYI, putStrLn will automatically insert a newline for you, and the  
> > final 'return ()' is unnecessary.  My favorite idiom for this kind of  
> > thing is:
> > 
> > mainMenu = putStr $ unlines
> >    [ "line 1"
> >    , "line 2"
> >    , "line 3"
> >    ]
> > 
> Or how about
> 
> mainMenu =
>    sequence_ $ map putStrLn ["line1", "line2", "line3"]

I argue if you want to sequence_ a map you should write mapM_:

    mapM_ putStrLn ["line1", "line2", "line3"]

mapM is under-appreciated? More under-appreciated are line gaps:

    main = putStr "line1\n\
                  \line2\n\
                  \line3\n"

-- Don


More information about the Haskell-Cafe mailing list