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 <bulat.zigans...@gmail.com> > 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.zigans...@gmail.com > > _______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe >
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe