Size: a a a

Scala User Group

2020 January 24

M

Mikhail in Scala User Group
Yaroslav Sushkov
ну мне хотелось описать инвариант на уровне типов, чтобы туда физически не положить невалидные данные
еще раз - если ты парсишь - ты делаешь это в рантайме, значит итоговый тип у тебя в рантайме только сможет получиться и значит ты не можешь к нему никаких компайл тайм проверок накрутить
источник

M

Mikhail in Scala User Group
Oleg ℕizhnik
Как закодировать, что хлист не содержит других элементов, кроме A, B, C, D?
эталон уже кодировка
источник

M

Mikhail in Scala User Group
хотя этало не нужен
источник

M

Mikhail in Scala User Group
достаточно в эвиденсе проверить, что внутри не более одного экземпляра каждого типа
источник

M

Mikhail in Scala User Group
само в себя
источник

M

Mikhail in Scala User Group
Mikhail
достаточно в эвиденсе проверить, что внутри не более одного экземпляра каждого типа
вернее, если нужно для произвольного a,b,c,d. если ограниченное, то надо предоставить конечно базовый набор)
источник

Oℕ

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

Oℕ

Oleg ℕizhnik in Scala User Group
давайте сократим задачу до двух
источник

Oℕ

Oleg ℕizhnik in Scala User Group
как закодировать A Ior B с помощью шейрлеса, так чтобы порядок A и B не играл роли
источник

M

Mikhail in Scala User Group
Oleg ℕizhnik
как закодировать A Ior B с помощью шейрлеса, так чтобы порядок A и B не играл роли
https://github.com/rudogma/scala-superquants там я проверяю формулы. порядок как раз не важен. но важно, чтобы все встречалось в точности не более и не менее одного раза
источник

YS

Yaroslav Sushkov in Scala User Group
Mikhail
еще раз - если ты парсишь - ты делаешь это в рантайме, значит итоговый тип у тебя в рантайме только сможет получиться и значит ты не можешь к нему никаких компайл тайм проверок накрутить
ну это как с Refined, что у него есть compile-time проверки, и есть runtime, которые возвращают Either
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Mikhail
https://github.com/rudogma/scala-superquants там я проверяю формулы. порядок как раз не важен. но важно, чтобы все встречалось в точности не более и не менее одного раза
а где там?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
как тип то выглядит?
источник

M

Mikhail in Scala User Group
Yaroslav Sushkov
ну это как с Refined, что у него есть compile-time проверки, и есть runtime, которые возвращают Either
так где там у тебя необходимость компайл тайм я так и не понял
источник

YS

Yaroslav Sushkov in Scala User Group
Mikhail
так где там у тебя необходимость компайл тайм я так и не понял
да нету ее, я про то как представить модель данных, которая уже валидная
источник

M

Mikhail in Scala User Group
Oleg ℕizhnik
как тип то выглядит?
нельзя в самом типе. только имплисит проверкой и потом тегаешь, что ты зарефайнил
источник

YS

Yaroslav Sushkov in Scala User Group
Yaroslav Sushkov
да нету ее, я про то как представить модель данных, которая уже валидная
чтобы в нее нельзя было засунуть неправильные данные
источник

Oℕ

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

M

Mikhail in Scala User Group
Yaroslav Sushkov
чтобы в нее нельзя было засунуть неправильные данные
покажи код. как ты это планируешь использовать
источник

Oℕ

Oleg ℕizhnik in Scala User Group
что-то
источник