<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Apr 30, 2016 at 11:00 AM, Daniel Bergey <span dir="ltr"><<a href="mailto:bergey@alum.mit.edu" target="_blank">bergey@alum.mit.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">The entire topic of space use in Haskell is not simple, but the part you<br>
need here may be.  As long as GHC can tell that values already written<br>
to disk may be garbage collected, memory use is quite reasonable.<br>
<br>
For example, here's a short program that prints a long-ish list:<br>
<br>
xs :: [Double]<br>
xs = map cos [1..1e7]<br>
<br>
main :: IO ()<br>
main = traverse_ print $ map sin xs<br>
<br></blockquote><div><br></div><div><br></div><div><br></div><div>Thanks. I'll see if this works for me. My question right now is, what is traverse_print? Is that the same as</div><div><br></div><div>main = traverse print . map sin $ xs</div><div><br></div><div>?</div><div><br></div><div>I'm guessing IO is traversable and for some reason you don't want to use mapM.</div><div><br></div><div>D</div><div><br></div><div><br></div></div></div></div>