Подсчитайте количество палиндромов в списке строк, 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,

Это приведет вас к следующей ошибке; Я призываю вас внимательно прочитать его и посмотреть, сможете ли вы добиться прогресса самостоятельно, а затем открыть новый вопрос, если вы потратите, скажем, пятнадцать минут, пытаясь понять это, не добившись прогресса.

Другие вопросы по тегам