Этот вопрос относится к этому Function Composition VS Function Application, на который ответил antal s-z.Ошибка типа Haskell от функции Применение к функциональному составу
Как вы можете это получить?
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)
ли это необходимо, чтобы написать свободную функцию точки для того, чтобы использовать функцию композиции? Я все еще не очень понимаю, как работает функция композиции.
Пожалуйста, помогите. Спасибо.
Не совсем понимаю последнюю часть, которая отвергает пример с образцом. – peterwkc
Какую часть этого вы не понимаете? Мотивация за ней, что она должна делать или как она работает? Он использует только то, что вы уже видели, поэтому, если вы думаете об этом, вы сможете следовать ему! –