<div dir="ltr">Since this is the &quot;beginners&quot; list, could someone explain me why using g made everything run like the wind, with almost no memory?<br><br>I am puzzled! :-(<br><br><div class="gmail_quote">On Mon, Jul 28, 2008 at 17:32, Steve Klabnik <span dir="ltr">&lt;<a href="mailto:steve.klabnik@gmail.com">steve.klabnik@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div dir="ltr"><br><br>Finally, what I ended up doing:<br><br><blockquote>f :: Integer -&gt; Integer -&gt; Integer <br>
<div class="Ih2E3d">
f acc x <br>&nbsp;&nbsp;&nbsp; | x == 1 = acc <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; | even x = f (acc + 1) (x `div` 2) <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; | otherwise = f (acc + 1) (3 * x + 1)<br><br></div>g :: Integer -&gt; (Integer, Integer)<br>g x = (f 1 x, x)<br><br>answer = (foldl&#39; max (0,0)) $ map g [1 .. 999999]<br>

<br><br>main = putStrLn( show answer)<br></blockquote><br></div></blockquote></div><br><br clear="all"><br>-- <br>Rafael Gustavo da Cunha Pereira Pinto<br>Electronic Engineer, MSc.<br>
</div>