
It looks like length . show is faster Prelude Control.Arrow> let numDigits n = length $ show n Prelude Control.Arrow> let digits = iterate (`div` 10) >>> takeWhile (>0)
length Prelude Control.Arrow> let n=2^1000000 Prelude Control.Arrow> :set +s Prelude Control.Arrow> numDigits n 301030 (0.39 secs, 23001616 bytes) Prelude Control.Arrow> digits n 301030 (51.06 secs, 19635437248 bytes)
2009/8/22 Bulat Ziganshin
Hello Roberto,
Saturday, August 22, 2009, 9:19:26 PM, you wrote:
I want to calculate the number of digits of a positive integer. I was
fastest way
digits = iterate (`div` 10) >>> takeWhile (>0) >>> length
-- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe