Size: a a a

ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)

2020 March 02

В

Вадим in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
Oleg ℕizhnik
Я отвечу в трёх частях
для тех кто в танке, что за три части?
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
foo : forall A. A -> A
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
foo[A] = \a -> if(A is Int) a + 1 else a
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
foo - замкнутый терм типа forall A. A -> A
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
(foo, foo) не является отношением, соответствующим типу forall A. A -> A
источник

λ

λоλторт in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
Oleg ℕizhnik
foo[A] = \a -> if(A is Int) a + 1 else a
а, что если типы не стёрлись в рантайме, то пользователю обязательно доступен их тайпреп?
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
это и называется "стирание типов" - уничтожение любой информации о типе
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
если какая-то информация осталась
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
ей можно воспользоваться для того, чтобы создать терм. не соответствующий отношению
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
то, что тип можно складывать
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
что у него есть выделенный элемент и т.п.
источник

w

welcometotheclubbudd... in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
Oleg ℕizhnik
что у него есть выделенный элемент и т.п.
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
в языках с parametricity существует ровно один терм типа
forall A. A -> A - это айдентити
источник

λ

λоλторт in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
Oleg ℕizhnik
это и называется "стирание типов" - уничтожение любой информации о типе
но информация о типе может остаться в результате мономорфизации или для джита, а все остальные варианты получить информацию о типе могут быть заблокированы
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
λоλторт
но информация о типе может остаться в результате мономорфизации или для джита, а все остальные варианты получить информацию о типе могут быть заблокированы
мономорфизация не ломает параметрисити, и тип остаётся стёртым
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
она вообще не относится к обсуждаемой теме
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
типы без стирания - это когда можно написать терм, который использует информацию о типе как-то
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
которую ему не предоставили явно в виде параметра\инстанса
источник

λ

λоλторт in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
понято, Олег
источник