[Haskell-cafe] How to print a string (lazily)

Tomasz Zielonka tomasz.zielonka at gmail.com
Tue Jan 3 16:23:54 EST 2006


On Tue, Jan 03, 2006 at 05:49:07PM +0000, Neil Mitchell wrote:
> All Haskell functions are lazy, hence there is no need to "write a
> lazy version" of your print_list function. I think the function you
> probably want is:
> 
> putStr (unlines xs)
> 
> This uses the bulid in unlines function, which is similar in spirit to
> join (you get more quotes, which I guess you don't want)
> 
> The equivalent in monad'y programming is:
> 
> mapM putStrLn xs
> 
> The first one has fewer monads, so I prefer it, but take your pick :)

Nitpicking a bit to prevent possible confusion: a monad is a *type
constructor*, not an expression. In both variants above you are dealing
with two monads - IO and [] - however, the Monad instance for [] is
not used.

Best regards
Tomasz

-- 
I am searching for programmers who are good at least in
(Haskell || ML) && (Linux || FreeBSD || math)
for work in Warsaw, Poland


More information about the Haskell-Cafe mailing list