Я сталкивался с использованием.оператор, которого я не совсем понимаю.
Я сам пытался рассуждать об этом, но вывод, к которому я пришел, отличается от того, что производит GHCI.
Я использую :t
для проверкитип выражения.
Я использую следующие функции: last
и (.)
, которые имеют следующие подписи:
last :: [a] -> a
(.) :: (b -> c) -> (a -> b) -> a -> c
Функция, в которой я запутался,this:
(last .)
Я не уверен, что это за конструкция, но я предположил, что она будет похожа на композицию функций.Используя мои рассуждения, я ожидал, что это произведет следующую функцию:
(last .) :: (b -> [c]) -> (a -> b) -> a -> [c]
Что :t
на самом деле дает мне это:
(last .) :: (a -> [c]) -> a -> c