Anonymous
В ТЕОРИИ все работает )))
Ayrat
Hog
Ayrat
Юнион типы должны их поддерживать!
string|int должен быть подтипом string|int|guid!
Ayrat
Что не правда для ДУ
Vasily
Совсем неправда
Vasily
Но тех, кто выбрался из башни из слоновой кости, это почему-то не останавливает
Vladimir
Ayrat
На ДУ тоже можно, но там своя специфика с disjoint сетами
Anonymous
т.е. по-твоему string | int это подмножество string | int | любой другой тип?
Vasily
Экзактли
Ayrat
Ayrat
Это же даже очевидно слегка
Anonymous
а, ну так. то определение, которые я выше дал, этому не удовлетворяет, поэтому мы и не понимаем друг друга. или я чего-то не понимаю в том определении, которое сам написал.
Ayrat
Любое значение string|int является значением типа string|int|любой тип
Vasily
В теории, можно обобщить на размеченные
Vasily
Если добавить соответствие имени
Vladislav
слишком сложно у вас тут для конца недели
Anonymous
явно видно что A | B \in A | B | C
Ayrat
Ayrat
И сразу все по пизде идёт
Vasily
Vasily
Подтасовка фактов
Ayrat
Vasily
Подгон под теорию
Vasily
Короче, товарищ хочет быть прав
Vasily
Но не хочет признавать проебы
Vladislav
Vasily
Чувак, тут практики
Anonymous
выше я показал, что вопрос "assum f such that .. is injective`. и все.
Ayrat
Vasily
За теорией тебе в скала чат
Anonymous
Vasily
Короче, хочется оказаться правым, аж зудит
Ayrat
Короче, давайте уточним. В фшарпе реализованы DU.
Ayrat
Юнионов нет
Anonymous
не, просто не хочется теорию и практику путать, это так себе на самом деле.
Vasily
За недорого могу провести сеанс психотерапии
Ayrat
В ТС насколько я знаю наоборот
Anonymous
но я вас понял, с точки зрения практики это СлОжНа рЕаЛиЗоВаТь
Ayrat
В скала 2 через сраку (силед трейт + кейс классы) можно ДУ, юнионы хз.
В скала 3 есть и то, и другое
Vasily
В дотнете нереально
Vasily
Из- за нестираемых типов
Vladislav
В дотнете нереально
https://github.com/dotnet/csharplang/issues/1554#issuecomment-391140809
Ayrat
Vladislav
Да
Vladislav
А есть другие?
Vasily
Ну вообще да
Ayrat
Ну да, открыл, увидел лейауты в структурах
Vasily
Сишные юнионы
Vasily
Они про размещение в памяти
Vasily
И в сишарпе они отлично делались на атрибутах
Ayrat
John A De Goes on Twitter: "In Scala 3, type intersections & unions are associative, commutative, and have an identity: A & (B & C) =:= (A & B) & C A & B =:= B & A A & Any =:= A Any & A =:= A A | (B | C) =:= (A | B) | C…
https://mobile.twitter.com/jdegoes/status/1245305980512067585
Ayrat
Вот так сишные юнионы не могут. Они просто для хранения даты
Vladislav
Ayrat
Ayrat
В самом твите получше!
Anonymous
так это ж обыкновенная теория множеств, не?
Ayrat
Из определения вхождения множеств.
В общем все операции над множествами и их теоремы можно переносить на юнион типы
Ayrat
Anonymous
только Any смущает. Рассел же по-моему сто лет назад показал, что такого множества не существует.
Anonymous
Ayrat
Ayrat
Ты видел?)
Anonymous
я не смотрел, если честно. вчера завел себе твиттер только. но в CS там теория множеств во всю в ходу.
Anonymous
кастомные операторы никто не придумывает
Ayrat
Да не, я о том как ведут себя типы
Anonymous
но за A & Any = A его очень быстро бы забодали
Ayrat
То есть в скала 3, компилятор будет выкупать это всё в компайл тайме
Anonymous
мне кажется (не знаю точно), что Тайпскрипт как раз что-то такое и умеет.
Anonymous
но я могу быть очень не прав