я недавно обучения Haskell, и я читал функторы в ЖЖ вам Haskell, из которого я узнал,Состав композиций в Haskell
- Функции
((->)r)
, которые принимают один параметр, также в некотором смысле функторов. - Состав
(.)
эквивалентноfmap
Итак, что я понял, БПМЖ принимает два параметра. Во-первых, это функция, которую нужно применить, а вторая - функтор.
Однако я смущен этим выражением (.) (.) (.)
. Это композиция из двух композиций, с типом (b -> c) -> (a1 -> a2 -> b) -> (a1 -> a2 -> c)
Итак, вот мое сомнение возникает. Первый (.)
имеет два параметра, первый из которых является самой композиционной функцией. Второй параметр также является композиционной функцией. А композиционная функция как таковая не является функтором. Итак, как это допустимое выражение?
Уверен, что здесь что-то не хватает. Может ли кто-то заполнить пробелы и помочь мне понять, как это выражение правильно?
Здесь есть некоторая путаница. Функция - значение, а функтор - объект уровня, который отображает типы в типы. Приложение '(.) (.) (.)' Можно понять, не задумываясь о функторах. – chi