Со страницы 3 http://research.microsoft.com/en-us/um/people/emeijer/Papers/meijer94more.pdf:
вообще не верно, что катаморфизмы замкнуты относительно композиции
В каких условиях катаморфизмы составляют катаморфизм? Более конкретно (при условии, что я правильно понял выражение):
Предположим, что у меня есть два базовых функтора F
и G
и складки для каждого: foldF :: (F a -> a) -> (μF -> a)
и foldG :: (G a -> a) -> (μG -> a)
.
Теперь предположим, что у меня есть две алгебры a :: F μG -> μG
и b :: G X -> X
.
Когда композиция (foldG b) . (foldF a) :: μF -> X
является катаморфизмом?
Изменить: У меня есть предположение, основанное на расширенном ответе dblhelix: что outG . a :: F μG -> G μG
должен быть компонентом в μG
некоторого естественного преобразования η :: F a -> G a
. Я не знаю, правильно ли это. ( Изменить 2: Как указывает Кола, этого достаточно, но не нужно.)
Редактировать 3: Рен Торнтон в Haskell-Cafe добавляет: "Если у вас есть правильное свойство дистрибутивности (как подсказывает Кола), тогда все будет работать для конкретного случая. правильный тип свойства распределения обычно представляет собой естественное преобразование в какой-либо соответствующей категории, поэтому он просто откладывает вопрос о том, существует ли всегда соответствующая категория, и можем ли мы формализовать то, что означает" соответствующим образом связанный".