problem 40

着陸したら全く終わらなかった。

main = print $ p

p = map (d.(10^)) [0..6]

d x = (g 190000)!!(x-1)

g x = foldl f "" [1..x]
      where f x y = x++(show y)

ちょっとカンニングして以下。

Prelude Data.Char> product [digitToInt $ ([0..] >>= show) !! x | x<- take 7 $ iterate (*10) 1]
210
(0.06 secs, 132123632 bytes)

concatMapの実装がすごいんだろうなー なぜこんなに速いのか理解できない。