-- | -- = 第2章 練習問題 I -- -- * 入力文字列が回文になっているかを判定する対話プログラム@palindrome :: IO ()@を書け -- -- @ -- import Data.Char -- -- parindrome :: IO () -- prindrome -- = do { putStrLn "Enter a string:" -- ; xs <- getLine -- ; if isPalindrome xs then putStrLn "Yes!" -- else putStrLn "No!" -- } -- -- isPalindrome :: String -> Bool -- isPalindrome xs = (ys == reverse ys) -- where -- ys = map toLower (filter isAlpha xs) -- @ -- module TFwH.Chap02.ExI where import Data.Char -- | -- 入力文字列が回文になっているかを判定する対話プログラム -- palindrome :: IO () palindrome = do { putStrLn "Enter a string:" ; xs <- getLine ; if isPalindrome xs then putStrLn "Yes!" else putStrLn "No!" } -- | -- 文字列が回文かどうかを判定する述語 -- -- >>> isPalindrome "Madam, I'm Adam" -- True -- >>> isPalindrome "A Man, a plan, a canal - Suez!" -- False -- >>> isPalindrome "A Man, a plan, a canal - Panama" -- True -- isPalindrome :: String -> Bool isPalindrome xs = (ys == reverse ys) where ys = map toLower (filter isAlpha xs)