Описание тега category-theory

Category theory is a branch of abstract mathematics concerned with exposing and describing the underlying structure of logical and mathematical systems. Concepts from category theory have proven to be extremely effective as tools for structuring both the semantics of programming languages and programs themselves. Various category theoretic structures are used as tools for abstraction in programming, including functors, monads, and algebras.
2 ответа

Что именно является категорией?

Я читаю Теорию категорий для программистов и не могу понять, что именно представляет собой категория. Давайте рассмотрим Bool тип. Является Bool категория и True или же False объекты (жители)?
01 окт '17 в 08:24
0 ответов

Эта нотация с инфиксом Python 3 не работает, и я не понимаю, почему

Я пытался закодировать какую-то теорию категорий. Одним из требований является ассоциативность, поэтому "(ab) c = a (bc)" Пытаясь закодировать это с помощью модуля infix, я обнаружил, что моя версия правой части ("a (bc)") не работает правильно. Кто…
1 ответ

Вопросы Обобщающий Функтор

Функтор в Control.Categorical.Functor имеет следующее определение: 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) Но допустим, я хочу иметь функтор от обычных функций до стрелок…
21 сен '15 в 12:32
1 ответ

Контравариантные бинарные операции в Scala

Для очень простой общей модели категорий я пытаюсь сопоставить морфизм, связанный с парой объектов. class Obj[DerivedObj <: Obj[DerivedObj]] { /* ... */ } class Morphism[DerivedMorphism <: Morphism[DerivedMorphism]] { /* ... */ } Я хотел бы ка…
30 апр '12 в 18:19
2 ответа

Ресурсы для изучения теории категорий

Я собираюсь пройти курс по теории категорий в ближайшее время. Какие ресурсы вы можете порекомендовать для изучения? Какие части имеют отношение к изучению и как мне научиться применять свои знания?
03 авг '09 в 20:37
1 ответ

Где функтор в естественной трансформации?

У меня был этот вопрос в глубине души с тех пор, как я увидел определение естественных преобразований в старом пакете "дополнительные функции" Эдварда Кметта: -- | A natural transformation between functors f and g. type f :~> g = forall a. f a -&…
18 фев '14 в 00:22
2 ответа

Что означает именно "функция внутри функтора"

В теории категорий функтор является гомоморфизмом между двумя категориями. В Haskell сказано, что аппликативный функтор позволяет нам применять функции "внутри функтора". Можно ли перевести эти слова "функционировать внутри функтора" обратно в матем…
06 дек '12 в 22:03
2 ответа

Эффективная реализация катаморфизма в Scala

Для типа данных, представляющего натуральные числа: sealed trait Nat case object Z extends Nat case class S(pred: Nat) extends Nat В Scala приведен простейший способ реализации соответствующего катаморфизма: def cata[A](z: A)(l: Nat)(f: A => A): …
1 ответ

Почему fmap должен отображать каждый элемент списка?

После прочтения книги " Изучите свой Haskell для большого блага" и очень полезной вики-книги " Теория категорий Haskell", которая помогла мне преодолеть распространенную ошибку категории, заключающуюся в путанице объектов категории с объектами прогр…
2 ответа

Библиотека категорий для Agda?

Существуют ли "рекомендуемые" библиотеки, которые обеспечивают удобную формализацию базовой теории категорий в Agda? Стандартная библиотека Agda, кажется, предоставляет очень мало в этом отношении. Я ищу что-то с низким барьером для входа, подобно т…
04 сен '14 в 07:49
2 ответа

Путаница в понимании подстановки / сигнатуры типа `ap` и различных реализаций (функциональное программирование)

Я изучаю функциональное программирование, извините, если мой вопрос звучит странно - я пытаюсь сосредоточиться на заданных типовых сигнатурах функций и способах их реализации. Глядя на подпись ap (Замена) https://gist.github.com/Avaq/1f0636ec5c8d6ae…
1 ответ

Я нарушаю закон абстракции?

У меня есть две переменные, первая с типом Either String Int а второй с типом IO (Either String Int), Как видите, структура двух переменных практически одинакова, за исключением того, что вторая обернута в IO, Чтобы сделать его составным, я планирую…
17 ноя '17 в 09:18
1 ответ

Насколько действительно аппликативно применять, а не "комбинировать"?

Для распространения неопределенности Approximate типа, я хотел бы иметь экземпляры для Functor через Monad, Это, однако, не работает, потому что мне нужна структура векторного пространства для содержащихся типов, поэтому на самом деле это должны быт…
1 ответ

Существует ли Coadsity MonadPlus, который асимптотически оптимизирует последовательность операций MonadPlus?

Недавно возник вопрос о связи между DList <-> [] против Codensity <-> Free, Это заставило меня задуматься, есть ли такая вещь для MonadPlus, Codensity Монада улучшает асимптотику только для монадических операций, а не для mplus, Более того, пока ран…
27 авг '15 в 14:35
3 ответа

Является ли концепция "чередованного гомоморфизма" реальной вещью?

Мне нужен следующий класс функций: class InterleavedHomomorphic x where interleaveHomomorphism :: (forall a . f a -&gt; g a) -&gt; x f -&gt; x g Очевидно, что имя, которое я придумал для него, ни в коем случае не является официальным термином для че…
1 ответ

Haskell: Как присоединиться к естественной трансформации?

Я могу определить естественное преобразование в Haskell как: h :: [a] -&gt; Maybe a h [] = Nothing h (x:_) = Just x и с функцией k: k :: Char -&gt; Int k = ord Условие естественности соблюдено в связи с тем, что: h . fmap k == fmap k . h Может ли ус…
08 май '11 в 23:09
5 ответов

Может ли монада быть комонадой?

Я знаю, что такое монада. Я думаю, что правильно обдумал, что такое комонада. (Или, скорее, то, что кажется достаточно простым; сложная часть состоит в том, чтобы понять, что в этом полезно...) Мой вопрос: может ли что-то быть монадой и комонадой? Я…
14 май '13 в 19:52
0 ответов

Есть ли что-то вроде продолжения Arrow в трансформаторе?

ContTМонадный трансформатор обладает интересным свойством: если есть* -&gt; *типа, такого какSet, который имеет четко определенные монадические операции, но не может иметь Monad экземпляр из-за некоторых ограничений (здесь Ord a), это можно обернуть…
1 ответ

Как называется эта особая структура функторов?

Предположим, что F - аппликативный функтор с дополнительными законами (с синтаксисом Haskell): pure (const ()) &lt;*&gt; m === pure () pure (\a b -&gt; (a, b)) &lt;*&gt; m &lt;*&gt; n === pure (\a b -&gt; (b, a)) &lt;*&gt; n &lt;*&gt; m pure (\a b -…
20 апр '13 в 18:10
1 ответ

Пошаговое / глубокое объяснение: Сила (Со) Йонеды (предпочтительно в Скале) через сопрограммы

Некоторый фоновый код /** FunctorStr: ∑ F[-]. (∏ A B. (A -&gt; B) -&gt; F[A] -&gt; F[B]) */ trait FunctorStr[F[_]] { self =&gt; def map[A, B](f: A =&gt; B): F[A] =&gt; F[B] } trait Yoneda[F[_], A] { yo =&gt; def apply[B](f: A =&gt; B): F[B] def run:…
02 июн '14 в 17:54