语法剥离是Haskell的Palindrome函数

时间:2015-07-28 21:52:38

标签: haskell palindrome strip

只是为了确保没有混淆。

我不是在问如何编写常规回文取景器。

我知道这将是一个重复的问题。

我知道要找到你使用的回文

isPalindrome :: (Eq a) => [a] -> Bool
isPalindrome xs = xs == (reverse xs)

对于“madamimadam”,这将成为现实。

我无法弄清楚的是,对于“我是亚当女士”,这个功能会回归真实。

1 个答案:

答案 0 :(得分:5)

import Data.Char (isAlphaNum, toLower)

isPalindromeStripped :: String -> Bool
isPalindromeStripped xs = isPalindrome (strip xs)

strip :: String -> String
strip xs = map toLower (filter isAlphaNum xs)

此版本使用strip首先将"Madam I'm Adam"转换为"MadamImAdam",然后将其降低为"madamimadam"