More neatly, we can fully separate IO from computation:<br>
<br>
&nbsp;&nbsp;&nbsp; h n = interact $ show . sum . map read . take n . reverse . lines<br><br>Better yet go a small step further and make *composable* combinations of IO &amp; pure computation, as in TV (<a href="http://haskell.org/haskellwiki/TV">
http://haskell.org/haskellwiki/TV</a>).<br><br>Cheers,&nbsp; - Conal<br><br><div><span class="gmail_quote">On 10/14/07, <b class="gmail_sendername">apfelmus</b> &lt;<a href="mailto:apfelmus@quantentunnel.de">apfelmus@quantentunnel.de
</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Brian Hurt wrote:<br>&gt; I mean, contemplate this trivial exercise for a moment: write a program
<br>&gt; that reads from stdin a series of numbers (one number per line), and<br>&gt; writes out the sum of the last n numbers.&nbsp;&nbsp;This is a trivial problem,<br>&gt; and I have no doubt that someone who knows Haskell better than I will
<br>&gt; reply to this email with a single line of code that does it.<br><br>Sorry, I can&#39;t resist :)<br><br>&nbsp;&nbsp; main n = print . sum . map read . take n . reverse . lines =&lt;&lt;<br>getContents<br><br>&gt; I&#39;m not saying that it&#39;s impossible to go directly to Haskell, I&#39;m
<br>&gt; saying that it&#39;s just very very hard.<br>&gt; [&amp;]<br>&gt; I&#39;m going to offer an opinion here that&#39;s likely to be controversial<br>&gt; (in this forum): people new to functional programming shouldn&#39;t
<br>&gt; learn Haskell first. They should start with either Ocaml or SML first.<br>&gt; If it makes it easier to accept this argument, you can consider<br>&gt; Ocaml and SML as &quot;Haskell with training wheels&quot;.<br>
<br>I don&#39;t agree. At least, it was different for myself.<br><br>Looking at the line of code above, I can&#39;t help it, but I perceive<br>Haskell as being the _simplest_ programming language in the whole world.<br>I had no trouble learning it (step by step from a book), maybe because
<br>I&#39;ve happily thrown away everything I (thought I) knew (about<br>programming). The reward was worth it.<br><br>Why do people want side effects? Purity is soo much simpler.<br><br><br>Regards,<br>apfelmus<br><br>_______________________________________________
<br>Haskell-Cafe mailing list<br><a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br><a href="http://www.haskell.org/mailman/listinfo/haskell-cafe">http://www.haskell.org/mailman/listinfo/haskell-cafe
</a><br></blockquote></div><br>