<div>It looks like length . show is faster<br></div><div><br></div><div>Prelude Control.Arrow&gt; let numDigits n = length $ show n<br>Prelude Control.Arrow&gt; let digits = iterate (`div` 10) &gt;&gt;&gt; takeWhile (&gt;0) &gt;&gt;&gt; length<br>
Prelude Control.Arrow&gt; let n=2^1000000<br>Prelude Control.Arrow&gt; :set +s<br>Prelude Control.Arrow&gt; numDigits n<br>301030<br>(0.39 secs, 23001616 bytes)<br>Prelude Control.Arrow&gt; digits n<br>301030<br>(51.06 secs, 19635437248 bytes)<br>
<br></div><br><div class="gmail_quote">2009/8/22 Bulat Ziganshin <span dir="ltr">&lt;<a href="mailto:bulat.ziganshin@gmail.com">bulat.ziganshin@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hello Roberto,<br>
<div class="im"><br>
Saturday, August 22, 2009, 9:19:26 PM, you wrote:<br>
<br>
&gt; I want to calculate the number of digits of a positive integer. I was<br>
<br>
</div>fastest way<br>
<br>
digits = iterate (`div` 10) &gt;&gt;&gt; takeWhile (&gt;0) &gt;&gt;&gt; length<br>
<font color="#888888"><br>
<br>
--<br>
Best regards,<br>
 Bulat                            mailto:<a href="mailto:Bulat.Ziganshin@gmail.com">Bulat.Ziganshin@gmail.com</a><br>
</font><div><div class="h5"><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" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</div></div></blockquote></div><br>