Size: a a a

Scala User Group

2021 August 18

SA

Sergey Alaev in Scala User Group
Ну не надо так, мейнстрим языков с нормальными типами-пересечениями не так много. Отсутствие union types в скале мешало, но куча других языков как-то живет без этой фичи. Начиная с джавы.
источник

Oℕ

Oleg ℕizhnik in Scala User Group
расскажите, как выглядит нормальное определение суммы
источник

SA

Sergey Alaev in Scala User Group
Так у вас претензии не к языку, и даже не к цирке, а к агрессивному фанатичному коммьюнити? Ну что поделаешь, другого коммюнити нет. Самое приличное обитает на реддите, кстати.
источник

IK

Ivan Kerenskiy in Scala User Group
Ещё раз. Определение суммы "как у Either" через обёртки снимает такую необходимость)
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Я думаю, подразумевается, что  "нормально" - это в точности как в тайпскрипте, где кстати, правила типизации этих сум ансаунд
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Но опять же и это "нормально" можно спокойно заенкодить в ГАДТ, если очень хочется
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Этот SML код в точности соответствует определению через enum
источник

KS

Kirill Shelopugin in Scala User Group
Хотелось бы просуммировать сегодняшний день: скала 2 - говно, Одерски - глупый, скала 3 - бесполезна, афроамериканцев - линчуют, наследование - рак, комьюнити - фанбои, юнионы - напрягают, сёрка - плохая. Хотелось бы проиллюстрировать это скриншотом Беряла, но тут не понв.
источник

λ

λoλcat in Scala User Group
кринжанул
источник

S

Simon in Scala User Group
Таки это полностью эквивалентно наследованию.
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
знает
источник

Oℕ

Oleg ℕizhnik in Scala User Group
в скале case class ... extends и есть энкодинг этого энама, он вводит несколько новых типов, которые вы вправе не использовать
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
ректангл это часть определения типа шейп
источник

KS

Kirill Shelopugin in Scala User Group
Хорошего вечера, заходите ещё!
источник

Oℕ

Oleg ℕizhnik in Scala User Group
в SML вам тоже придётся модифицировать определения конструкторов, из-за потребностей материнского енама
источник

Oℕ

Oleg ℕizhnik in Scala User Group
и ни в одном MLе тоже нет JSON либы которая автоматически бы анвраппила вложенные в АДТ рекорды и добавляла к ним дискриминатор
источник

Oℕ

Oleg ℕizhnik in Scala User Group
т.е. это ваше определение нормальности ни капли не облегчило бы вашу задачу на языках, где так можно
источник

Oℕ

Oleg ℕizhnik in Scala User Group
придётся, потому что каждый из конструкторов - часть определения вашего типа
источник

Oℕ

Oleg ℕizhnik in Scala User Group
если нужно добавить поле - придётся идти менять в конструкторе
источник

Oℕ

Oleg ℕizhnik in Scala User Group
через какой рефлекшон
источник