Публикации по теме 'category-theory'


Больше (категорических) мыслей о законных линзах
В предыдущем посте мы обсудили, как мы можем сформулировать определение общей законной оптики, и мы доказали, что законные линзы - это в точности линзы с постоянным дополнением. В этом посте мы вернемся к представленным там идеям в более категоричной форме, но сосредоточимся, в частности, на линзах. В этом посте мы представим серию результатов, которые были получены на третьем Statebox Summit при сотрудничестве участников, из которых следует упомянуть Жюля Хеджеса , Дэвида Спивака ,..

Вопросы по теме 'category-theory'

может ли кто-нибудь объяснить связь между ковариантностью/контравариантностью типов и теорией категорий?
Я только начинаю читать о теории категорий и был бы очень признателен, если бы кто-нибудь мог объяснить связь между контравариантностью/ковариантностью CS и теорией категорий. Какими могут быть некоторые примеры категорий (т.е. каковы их...
749 просмотров

Что такое преобразователи монад в Haskell в категорическом выражении?
Будучи студентом математики, первое, что я сделал, когда узнал о монадах в Haskell, - это проверил, действительно ли они являются монадами в том смысле, о котором я знал. Но потом я узнал о преобразователях монад, которые, похоже, не совсем изучаются...
1571 просмотров

Где функтор в естественном преобразовании?
У меня возник этот вопрос в глубине души с тех пор, как я увидел определение естественных преобразований в старом пакете дополнительных категорий Эдварда Кметта: -- | A natural transformation between functors f and g. type f :~> g = forall a....
721 просмотров
schedule 03.05.2023

Как выглядит нетривиальный комоноид?
Комоноиды упоминаются, например, в : Из-за отсутствия нетривиальных комоноидов в Haskell мы можем ограничиться требованием Functor, а не какого-либо класса Coapplicative. После небольшого поиска я нашел ответ StackOverflow , который...
4505 просмотров
schedule 02.02.2022

Обобщение экспоненциального типа
Как (если вообще) экспоненциальная интерпретация (->) ( a -> b как b a ) распространяется на категории, отличные от Hask/Set? Например, может показаться, что интерпретация категории недетерминированных функций примерно Kliesli [] a b как...
283 просмотров

Не совсем понимаю `F(1A) = 1F(A) ∀ A ∈ C1` как закон функтора
Я читаю эту статью о категории и функторе в scala: https://hseeberger.wordpress.com/2010/11/25/introduction-to-category-theory-in-scala/ В этой части: Чтобы сохранить структуру категорий, это отображение должно сохранять карты идентичности...
115 просмотров

Вопросы обобщающего функтора
Функтор в Control.Categorical. Функтор имеет следующее определение: class (Category r, Category t) => Functor f r t | f r -> t, f t -> r where fmap :: r a b -> t (f a) (f b) Но допустим, я хочу иметь функтор от обычных...
74 просмотров
schedule 30.06.2022

Почему pure требуется только для Applicative, а не для Functor?
Прочитав этот Wikibook об основах Haskell и теории категорий , я узнал о функторах: Функтор - это, по сути, преобразование между категориями, поэтому для категорий C и D функтор F: C -> D отображает любой объект A из C в F (A) из D....
1445 просмотров
schedule 24.04.2022

в Haskell, как мне вывести: Категория экземпляра (Moore a b -> Moore b c)
Я пытаюсь получить экземпляр категории для трансформаторов автомата Мура, где: data Moore a b = Moore b (a -> Moore a b) type MooreT a b c = (Moore a b -> Moore a c) Проблема в том, что MooreT имеет 3 параметра, а Category всего 2....
113 просмотров
schedule 13.11.2023

Откуда взялась секция имени для частично применяемого инфиксного оператора?
В Haskell мы используем термин «раздел» для обозначения частично применяемой функции, используемой в инфиксной позиции. Например, для функции foo :: a -> b -> c и значений x :: a и y :: b у нас есть два раздела s1 = (x `foo`) :: b...
337 просмотров
schedule 16.03.2024

Связь между классами Semigroupoid и Semigroup
На прошлой неделе я пытался понять некоторые из «основных» типов и классов типов Haskell (но в общей сложности изучаю Haskell не более двух недель) и обнаружил кое-что, что меня беспокоит: «Полугруппоид» - это обобщение «Категории», означающее,...
336 просмотров

Можно ли рассматривать вид `*` как `ob (Hask)`?
Если Hask является категорией всех типов haskell (с функциями в виде стрелок), то можно ли рассматривать ob(Hask) (то есть коллекцию объектов Hask ) как равную * ? Если нет, то в каком смысле это неправильно?
136 просмотров
schedule 02.05.2022

Пример конкретного типа функтора, который не может быть аппликативным?
Из функторов, которые не являются аппликативными : Конструктор типа, который является Functor, но не Applicative. Простым примером является пара: instance Functor ((,) r) where fmap f (x,y) = (x, f y) Но нет способа...
397 просмотров
schedule 06.05.2024

Имя для конструктора типа, который одновременно является категорией и монадой?
Есть ли какое-нибудь стандартное имя для конструктора типа F :: * -> * -> * -> * с операциями return :: x -> F a a x bind :: F a b x -> (x -> F b c y) -> F a c y то есть контравариантный функтор в первом аргументе и...
162 просмотров
schedule 25.06.2023

Что такое гомоморфизм моноидов?
Я читал о гомоморфизме моноидов из Морфизмы моноидов , Продукты и Сопродукты и не смогли понять на 100%. Автор говорит (выделено оригиналом): Функция length преобразует String в Int с сохранением моноидной структуры . Такая...
3640 просмотров

Что означает вселенная?
В статьях о функциональном программировании много упоминаний о вселенной. Я читаю книгу «Теория категорий для программистов» Бартоша Милевски, и он также много раз упоминал о вселенной. Вопрос в том, что означает вселенная в контексте...
228 просмотров

Какие тождества обеспечивают категориальные монады, которых нет у монад Haskell?
http://blog.sigfpe.com/2006/08/you-could-have-invented-monads-and.html пишет: Если вы не догадались, речь идет о монадах, которые появляются в чисто функциональных языках программирования, таких как Haskell. Они тесно связаны с монадами...
95 просмотров
schedule 30.05.2023

Требовать, чтобы полугруппа была ассоциативной в scala
Полугруппа должна быть ассоциативной, но я мог бы определить Semigroup как: trait Semigroup[T] { def op(t1:T, t2:T) : T } def plus = new Semigroup[Int] { def op(t1:Int, t2:Int) = t1 - t2 } Я могу реализовать plus , который не является...
48 просмотров

Функтор чтения в C++
Я пытаюсь реализовать функтор читателя на С++. Соответствующее определение Haskell: fmap :: (a -> b) -> (r -> a) -> (r -> b) Моя версия С++: template<class A, class B, class R> B fmap(const std::function<B(A)> &funcA, const...
134 просмотров

Существует ли монадически естественный в M нетождественный морфизм монад M ~ ›M?
Известно, что естественные преобразования с типовой сигнатурой a -> a должны быть функциями идентичности. Это следует из леммы Йонеды, но может быть получено и напрямую. Этот вопрос требует того же свойства, но для морфизмов монад вместо...
146 просмотров
schedule 24.02.2022