Подсчитайте количество палиндромов в списке строк, Haskell
Функция countPalindromes получает список строк и возвращает счетчик того, сколько строк являются палиндромами.
isPalindrome :: String -> Bool
isPalindrome w = w == reverse w
countPalindromes :: [String] -> Int
countPalindromes ss = length filter (== isPalindrome) ss
Я знаю, что длина функции применяется к двум аргументам вместо одного. Я просто не знаю, как это исправить?
1 ответ
Решение
Вы можете использовать скобки, чтобы повлиять на применение функции:
countPalindromes ss = length (filter (== isPalindrome) ss)
Скобки вызовут все выражение filter (== isPalindrome) ss
быть сгруппированы в один термин, и его результат передается length
,
Это приведет вас к следующей ошибке; Я призываю вас внимательно прочитать его и посмотреть, сможете ли вы добиться прогресса самостоятельно, а затем открыть новый вопрос, если вы потратите, скажем, пятнадцать минут, пытаясь понять это, не добившись прогресса.