Size: a a a

Теория категорий

2019 December 22

AZ

Alex Zhukovsky in Теория категорий
вроде
источник

AZ

Alex Zhukovsky in Теория категорий
ну да, так и есть
источник

AZ

Alex Zhukovsky in Теория категорий
Yuriy Syrovetskiy
наверно, лемма правильная. напишите доказательство в общем виде. выразите

to :: (forall x . (x -> a) -> F x) -> F a
from :: F a -> (forall x . (x -> a) -> F x)

через fmap
просто автор подразумевает некоторые вещи которые я не понимаю
источник

AZ

Alex Zhukovsky in Теория категорий
Prelude> :{
Prelude| phi :: (forall x . (a -> x) -> Maybe x) -> Maybe a
Prelude| phi alpha = alpha id
Prelude| :}
Prelude>
источник

AZ

Alex Zhukovsky in Теория категорий
эмм, а как он схавал это?
источник

AZ

Alex Zhukovsky in Теория категорий
откуда он 'a' взял?
источник

PG

Pïg Grëënëst in Теория категорий
Хаскель по дефолту добавляет forall для каждой свободной перменной в типе
источник

AZ

Alex Zhukovsky in Теория категорий
а как определить свободная или нет? и x и a используются справа от (a -> x)
источник

ЕО

Евгений Омельченко in Теория категорий
Свободная это та, которая не связана ни с каким forall'ом
источник

ЕО

Евгений Омельченко in Теория категорий
Т.е. если ты явно не поставишь forall, то компилятор за тебя в самом начале его допишет
источник

AZ

Alex Zhukovsky in Теория категорий
я пытаюсь понять, почему тут один forall а не два
источник

PG

Pïg Grëënëst in Теория категорий
Если ты пишешь (a -> b) -> c это будет forall a b c. (a -> b) -> c, но (forall a. a -> b) -> c это уже forall b c. (forall a. a -> b) -> c
источник

AZ

Alex Zhukovsky in Теория категорий
Чтобы это понять переписал на родной шарпик:

struct Maybe<T> { }
Maybe<A> Phi<A, X>(Func<Func<A, X>, Maybe<X>> alpha) => alpha(_ => _);


Где он логично жалуется, что не может из A в X преобразовать
источник

O

Orbarax in Теория категорий
какой тут приоритет у операторов? (x -> a) -> (F x =~ F a) ?
источник

AZ

Alex Zhukovsky in Теория категорий
Orbarax
какой тут приоритет у операторов? (x -> a) -> (F x =~ F a) ?
я думаю у ~= самый низкий
источник

O

Orbarax in Теория категорий
тогда всё встаёт на свои места
источник

AZ

Alex Zhukovsky in Теория категорий
((x -> a) -> F x) =~ F a
источник

AZ

Alex Zhukovsky in Теория категорий
в общем я не очень понимаю эту запись:

phi :: (forall x . (a -> x) -> Maybe x) -> Maybe a
источник

AZ

Alex Zhukovsky in Теория категорий
такое ощущение что a это просто экзистенциальный тип
источник

AZ

Alex Zhukovsky in Теория категорий
типа существует такая функа a -> x что получится Maybe a
источник