Я работаю над довольно простой проблемой в haskell. Я пытался подсчитать количество строчных букв в строке. Мое решение этогоПочему это недопустимое преобразование эта?
import Data.Char
lowercaseCount :: String -> Int
lowercaseCount x = length $ filter isLower x
Я смотрел на фактической реализации lowercaseCount
и увидел, что казалось, что это должно было быть в состоянии под идти к сокращению ETA. Я попытался это
lowercaseCount = length $ filter isLower
но GHC кричал на меня, говоря
Не удалось соответствует ожидаемому типа
[Char] -> Int
с фактическим типомInt
мне было интересно, почему это сокращение ета является незаконным, и если бы был способ сделать эту функцию способной быть в приведенной ниже форме.
My Haskell довольно ржавый, но не ваша вторая версия должна использовать функцию композиции ('.') вместо приложения (' $ ')? Фильтр будет функцией, поскольку он не применяется полностью. – Carcigenicate
@Carcigenicate Yep. Вот и все. Я смущен. Извини за это. –