Этот вопрос связан с этим приложением функции VS Function Composition, на которое ответил antal s-z.
Как это получить?
map has type (a -> b) -> [a] -> [b]
head has type [a] -> a
map head has type [[a]] -> [a]
Почему следующий код имеет ошибку типа для композиции функции?
test :: [Char] -> Bool
test xs = not . null xs
getMiddleInitials :: [String] -> [Char]
getMiddleInitials middleNames = map head . filter (\mn -> not . null mn) middleNames
но у этого нет ошибки типа
getFirstElements :: [[a]] -> [a]
getFirstElements = map head . filter (not . null)
Обязательно ли писать функцию без точек, чтобы использовать композицию функций? Я все еще не очень разбираюсь в использовании композиции функций.
Пожалуйста помоги. Спасибо.