Похожие чаты

@Electrosnail я вот читаю про категорию Hask, и она определяется

так, что объекты в ней - типы, а стрелки - (->).
Я рассуждаю так, что если co-X, это X, где все стрелки развёрнутый в обратную сторону, то с Hask получается именно так, что (f: a -> b) => (co(f): b -> a).

Здесь ошибка в том, что Со - это не просто переворачивание стрелок?

2 ответов

19 просмотров

Понятие двойственной категории чисто формально, в категории Hask^* морфизм из a в b - это отображение из b в a в Hask. Двойственные категории были придуманы по той причине, что многие функторы переворачивают направление стрелок. Один из самых типичных функторов - это функтор кольца непрерывных функций на пространстве. Если у вас есть непрерывное отображение пространства X в пространство Y, q : X -> Y, а C(X) и C(Y) - кольца непрерывных функций, то C(q) - это отображение из C(Y) в C(X) (получаемое композицией функции на Y с q, f(q(.)) - это функция на Y, получаемая из функции f(.) на X, точка из X сначала приезжает на q в Y а потом от нее берется функция). Это называется "обратный образ". Таким образом, C - не совсем функтор, он оборачивает стрелочки. Сначала такое называли "контравариантный функтор", а потом решили, что можно сказать, что это обычный, "ковариантный" функтор, но из двойственной к Top категории (или, наоборот, из Top в двойственную к Ring). Понятие двойственной категории чисто формально (вроде?)

Если в терминах класса Category, то Hask есть instance Category A где newtype A a b = a -> b, а Hask* есть instance Category CA где newtype CA a b = b -> a. При этом ваш op на функциях действует как перепаковка newtype'ов (то есть coerce) Всё, что записывается в двойственной категории можно записать и в исходной, перевернув стрелки. В этом смысле различия чисто формальные. Но они есть. Например, тип композиции (с точностью до newtype будет `(c -> b) -> (b -> a) -> c -> a``` Не знаю, стало ли что-то понятнее.

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
any reference of this implementation?
BitBuddha
29
Ⓐrtto, [4/23/24 7:02 PM] Please explain more fully how it is not working exactly, and what are the steps you are taking, and what error messages come or what happens. Ⓐrtto, ...
Ezza Kezza
2
sounds like people have lost their kaspa on tradeogre... does this mean tradeogre not trustworthy?
Ezza Kezza
15
Страшнейшая правда про списки ЦБ. С первых дней жизни P2P сферы, молодые человеки, начитавшись законодательной базы и "внутренних" документов, решили, что им противостоит сер...
Foxcool
3
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
So much speculation in the last week. So much volatility in price. This is because Hedera has a GC that isn't using the network it's governing. Why aren't people asking why a...
Summit Seeker R
8
Anyone else having this error when trying to make transactions?
Datzel
11
Question: How viable is it to use Anvil as the backend infrastructure for managing a TradFi portfolio, while integrating Flexa for instant liquidity and payment solutions? Cou...
Kevin
2
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Карта сайта