计算字符串列表中的回文数,Haskell

Ael*_*lin 0 string haskell list palindrome

函数countPalindromes接收一个字符串列表,并返回有多少字符串为回文的计数.

isPalindrome :: String -> Bool
isPalindrome w = w == reverse w

countPalindromes :: [String] -> Int
countPalindromes ss = length filter (== isPalindrome) ss 
Run Code Online (Sandbox Code Playgroud)

我知道函数长度应用于两个参数而不是一个.我只是不知道如何解决这个问题?

Dan*_*ner 8

您可以使用括号来影响功能应用程序:

countPalindromes ss = length (filter (== isPalindrome) ss)
Run Code Online (Sandbox Code Playgroud)

括号将导致整个表达式filter (== isPalindrome) ss被分组为单个术语,并将其结果传递给length.

这将使您进入下一个错误; 我鼓励你仔细阅读,看看你是否可以自己从这里取得进展,然后提出一个新的问题,如果你花了十五分钟试图理解它而不取得进展.

  • 我很高兴在指出`filter(== isPalindrome)ss中的错误之前仔细阅读了你的答案. (2认同)