Problem 4

http://projecteuler.net/index.php?section=problems&id=4

回文

import List

main = print $ largestPalidrome

largestPalidrome = maximumBy ord $ filter f $ map g $ seeds
    where ord (p0, _) (p1, _) = p0 `compare` p1
          f (product, _) = isPalindoricNumer product
          g seed@(a, b)  = (a * b, seed)

seeds = [(a, b) | a <- [999,998..100], b <- [a,a-1..100]]

isPalindoricNumer n = let s = show n in
                          s == reverse s