Dr. Friedrich
Ну, синтаксис только получше, конечно, чем в тайпскрипте
Romɑn
я и про ТС такого не знал
Romɑn
там тогда мног очег из ТС берется)
И юнионы и пересечения и это
Dr. Friedrich
Кстати, про тайпскрипт
Dr. Friedrich
Ещё один пример языка, где энумы совершенно всратые
Doge
Romɑn
Doge
Romɑn
и там все это
Doge
Romɑn
Romɑn
а то ты думаешь я бы вопрос задавал если бы с хачкеллем на ты?
Romɑn
давай
Romɑn
хоть так
Dr. Friedrich
Dr. Friedrich
Там про диффы типов, ключи, тайпнеймы всякие
Dr. Friedrich
То, что в Scala не очень нужно.
Dr. Friedrich
Ну вот буквально такой свитчик написать
Romɑn
Dr. Friedrich
Допустим
Dr. Friedrich
У тебя есть актор
Romɑn
Dr. Friedrich
И ты знаешь, что он принимает сообщения типа Int и String
Dr. Friedrich
И отвечает на них Int => String и String => Int
Romɑn
угу
Dr. Friedrich
Теперь ты можешь такого актора типизировать без проблем
Dr. Friedrich
Кстати, в Akka наконец там сделали норм типизированных акторов?
Dr. Friedrich
Уж теперь-то, с такой супер системой типов, это не составит ни малейшего труда?
Dr. Friedrich
Что вообще с Akka под Dotty?
Romɑn
по идее да, там сообзщения должны быть
defaultMessageTypes | UserMessages
Romɑn
Dr. Friedrich
Dr. Friedrich
Вроде бы последняя итерация Typed Actors таки прижилась
Doge
давай
Вот, придумал один вариант использования не для вычислений на типах:
Когда для некоторых конкретных типов ты используешь оптимизированное представление, а для других - общее
match type MyIterator[T] = T match
case Char => MyOptimizedCharIterator
case _ => Iterator[T]
Dr. Friedrich
Но их до сих пор советуют для каких-то упоротых кейсов
Dr. Friedrich
Doge
Dr. Friedrich
Ну, я имею в виду, конструктор же я у него не вызову
Romɑn
Romɑn
при реализации
Dr. Friedrich
Давай пример как в коде применить такой тип!
Doge
Doge
Так что с ходу не дам
Dr. Friedrich
Ну на словах опиши хотя б
Doge
Набираю с телефона
Dr. Friedrich
Пример хороший, но хочется продолжения!
Romɑn
😂
Dr. Friedrich
Doge
Dr. Friedrich
Ему говорят на словах, а он давайте на хаскеле
Dr. Friedrich
Не годится.
Dr. Friedrich
Кстати, вот пример со слайда тоже хороший
Dr. Friedrich
Это ж можно вариадики такие сделать своеобразные
Dr. Friedrich
Ну, если нормальных вариадиков так и не завезли
Dr. Friedrich
Romɑn
и там Concat это тип? или ф-ция? и мне явно надо прописывать что это конкат или что?
Dr. Friedrich
Doge
Dr. Friedrich
Concat<(int, string), (long)> ≡ (int, string, long)
Romɑn
Dr. Friedrich
Да, считай что функция на типах
Dr. Friedrich
Её можно написать где угодно, где тип ожидается
Dr. Friedrich
Но на этом всё, я чота не могу придумать, как это применить
Dr. Friedrich
Ну то есть как в коде-то использовать?
Romɑn
не в рантайме же
Dr. Friedrich
Dr. Friedrich
Вот есть конкат
Dr. Friedrich
Я могу, наверное, функцию написать и им типизировать
Dr. Friedrich
def concat[X, Y](x: X, y: Y): Concat[X, Y]
Dr. Friedrich
Но как реализовать её?