Haskell 的语法剥离是回文函数
Grammar stripping isPalindrome function for Haskell
只是为了确保没有混淆。
我不是在问如何写一个普通的回文查找器。
我知道这将是一个重复的问题。
我知道你用的是回文
isPalindrome :: (Eq a) => [a] -> Bool
isPalindrome xs = xs == (reverse xs)
这 return 对于 "madamimadam" 是正确的。
我想不通的是 return 对 "Madam I'm Adam" 成立的函数。
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"
。
只是为了确保没有混淆。
我不是在问如何写一个普通的回文查找器。
我知道这将是一个重复的问题。
我知道你用的是回文
isPalindrome :: (Eq a) => [a] -> Bool
isPalindrome xs = xs == (reverse xs)
这 return 对于 "madamimadam" 是正确的。
我想不通的是 return 对 "Madam I'm Adam" 成立的函数。
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"
。