Size: a a a

Scala User Group

2020 September 11

Ж

Жмака in Scala User Group
Oleg ℕizhnik
ну не компилится же
источник

Ж

Жмака in Scala User Group
Потому что не могу дженерик сделать
источник

Ж

Жмака in Scala User Group
Vladimir Sam
если больше то либо вложенные eitherы, либо (G)ADT (sealed traitы для начала), либо shapeless Coproduct
А можно вкратце пример для каждого?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
ладно, я понял, что это анрил, напишу сам
источник

VS

Vladimir Sam in Scala User Group
не, вкратце только для Either если Олег к этому времени не напишет
источник

Oℕ

Oleg ℕizhnik in Scala User Group
ну я пока не пишу
источник

Ж

Жмака in Scala User Group
А вообще то что мне нужно, можно в скале написать? Или проще разделить функцию на 2, чтобы каждая на оутпут выдавала свой датасет? Просто если появится еще кейс это будет грустно и много кода
источник

AD

Apache DOG™ in Scala User Group
Жмака
А вообще то что мне нужно, можно в скале написать? Или проще разделить функцию на 2, чтобы каждая на оутпут выдавала свой датасет? Просто если появится еще кейс это будет грустно и много кода
Адт или копродукт
источник

VS

Vladimir Sam in Scala User Group
вопрос действительно стоит, нужен ли 100% дженерик или на  самом деле есть ограниченное подмножество входов и выходов
источник

Ж

Жмака in Scala User Group
Пока только 2 выхода
источник

Ж

Жмака in Scala User Group
Но может быть 3 и 4
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Жмака
Привет. Как можно в скале написать функцию с одним дженерик типом так чтобы на выходе была возможность дать два разных типа, потому что внутри функции pattern matching? Например инпут dataset[x] , а output может быть dataset[y] или dataset[z]
а у x, y и z есть какая-то связь? Вызывающий эту функцию код ведь должен как-то знать, какой тип ему вернется
источник

Ж

Жмака in Scala User Group
X это сорс датасет, а остальные его производные после трансформации
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Жмака
Но может быть 3 и 4
можно сделать АДТ:
sealed trait TheOutput[A]
case class  OUX[A](…) extends TheOutput[A]
case class OUY[A](…) extends TheOutput[A]


def makeOutputFromDataSet(ds: Dataset[A]): TheOutput[A]


и добавлять новые подтипы тогда, когда нужно
источник

VS

Vladimir Sam in Scala User Group
👍
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Жмака
Потому что не могу дженерик сделать
источник

Ж

Жмака in Scala User Group
Спасибо! Сейчас попробую
источник

Ж

Жмака in Scala User Group
А sealed trait где должен быть: отдельным обьектом в том же package или внутри трейта где я пишу сигнатуры функциц?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Как хотите
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Никто не знает, как в дотти иде выключить рекомпиляцию на каждое изменение символа, и оставить только на сохранение?
источник