-- check strings for being palindromes pal :: String -> Bool pal str = reverse low == low where low = lower (filter isAlpha str) lower str = map toLower str f x = x + 2 * x - 3 + y where y = x * x panama = "A man, a plan, a canal ... Panama!" -- "A man a plan a canal Panama" -- "A man, a plan, a canal ... Panama!" tests = [ panama, "Bob", "x", "", "Madam, I'm Adam" ] check = all pal tests