今日は 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