Size: a a a

Scala User Group

2020 March 27

a

aλeχknvl in Scala User Group
не нужно оборачивать аргументы
источник

I

Ilya in Scala User Group
по сути я пытаюсь добиься описания диалогового дерева
но так что-б ответы на некоторые вопросы можно было типизированно распарсить и это-бы задавалось входным типом
источник

I

Ilya in Scala User Group
aλeχknvl
trait IsoF[F[_], T1, T2] {
 def to(in: T1): F[T2]
 def from(in: T2): F[T1]
}
я с такого начал. потом почему-то подумал что надо все в F завернуть..
источник

I

Ilya in Scala User Group
спасибло за совет
источник

I

Ilya in Scala User Group
а есть что-то уже такое готовое?
что-бы и инстансы IsoF[F[_], T1, T2] <=> IsoF[F[_], T2, T1] были и еще что-то полезное. ну как-то не вериться что мне одному такое понадобилось
источник

a

aλeχknvl in Scala User Group
в зависимости от F: Functor: Applicative: Monad, будет иметь разные инстансы
источник

a

aλeχknvl in Scala User Group
IsoF[F, A, B] ~ Iso[F[A], F[B]], т.е. по-крайней мере это категория
источник

a

aλeχknvl in Scala User Group
а точнее групоид
источник

a

aλeχknvl in Scala User Group
ну а дальше надо думать. в скалаз такой тип есть
источник

a

aλeχknvl in Scala User Group
все время этот тип изобретают, для парсинга и всяких кодеков.
источник

a

aλeχknvl in Scala User Group
но не знаю, насколько удобно с ним работать в полностью абстрактном варианте
источник

a

aλeχknvl in Scala User Group
trait JsonCodec[A] {
 def to(a: A): JsValue
 def from(js: JsValue): Either[E, A]
}
источник

a

aλeχknvl in Scala User Group
вот например вариант той же идеи
источник

a

aλeχknvl in Scala User Group
и таких сотни
источник

a

aλeχknvl in Scala User Group
лично мне удобнее работать с конкретными вариантами этого типа, без абстрактного F
источник

λ

λoλegΥch in Scala User Group
тут A != Either[E,A]
источник

a

aλeχknvl in Scala User Group
ну ок, добавь еще G[_]
источник

a

aλeχknvl in Scala User Group
IsoF[Either[E, ?], Id, A, JsValue]
источник

a

aλeχknvl in Scala User Group
но смысла больше не стало, только жизнь усложнилась
источник

I

Ilya in Scala User Group
ладно. суть смысла я понял) каждый пилит свое)) спасибо))))))
источник