今日は Problem 8。
module Main (main) where
import Data.List
import Data.Char
euler008 :: [Char] -> Int
euler008 n = maximum $ map euler008' $ nums n
where
nums = filter (\x -> length x > 4) . map (take 5) . tails
euler008' = foldl1 (*) . map digitToInt
main :: IO ()
main = do n <- getContents >>= return . concat . lines
putStrLn $ show $ euler008 n
^o^ >runhaskell euler008.hs < euler008.txt 40824