palindrome :: (Integral a) => a -> Bool palindrome n = let ns = show n in ns == reverse ns p4 :: Int p4 = maximum $ filter palindrome [x*y | x <- [100..999], y <- [100..999]] main = putStrLn $ "Solution: " ++ show p4